developersのめも

Mavenでインストールされた不要なjarを除外する方法

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>your-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>5.0.0</version>
            <exclusions>
                <!-- PostgreSQL JDBC Driver を除外 -->
                <exclusion>
                    <groupId>org.postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                </exclusion>
                <!-- H2 Database を除外 -->
                <exclusion>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 他の依存関係 -->
    </dependencies>
</project>

c

LOAD DATA
INFILE 'datafile'
BADFILE 'datafile.bad'
DISCARDFILE 'datafile.dsc'

INTO TABLE employees
(
    emp_id       POSITION(1:5)   CHAR(5),
    first_name   POSITION(6:12)  CHAR(7) "TRIM(TRAILING FROM :first_name)",
    last_name    POSITION(13:20) CHAR(8) "TRIM(TRAILING FROM :last_name)",
    salary       POSITION(21:24) CHAR(4)
)
FIELDS TERMINATED BY WHITESPACE
TRAILING NULLCOLS

bb

import re

text = "   Hello, World!   \n\n"
stripped_text = re.sub(r'[\r\n]+$', '', text)
print(f"'{stripped_text}'")  # 出力: '   Hello, World!   '

aaa

import time

def some_function():
    # ここに実行したい処理を記述します
    time.sleep(2)  # 例として、2秒間スリープします

# 処理時間の計測を開始します
start_time = time.time()

# 関数の実行
some_function()

# 処理時間の計測を終了します
end_time = time.time()

# 処理時間を計算します
elapsed_time = end_time - start_time

# 処理時間をターミナルに出力します
print(f"処理時間: {elapsed_time:.4f}秒")

SQL Loader

0001John Doe       30
0002Jane Smith     25
0003Bob Johnson    45
sqlldr my_user/my_password@my_service control=fixed_control.ctl
LOAD DATA
INFILE 'data.dat'
INTO TABLE my_table
(
  id       POSITION(01:04) CHAR,
  name     POSITION(05:19) CHAR,
  age      POSITION(20:21) INTEGER EXTERNAL
)
CREATE TABLE my_table (
  id    VARCHAR2(4),
  name  VARCHAR2(15),
  age   NUMBER(2)
);

batファイルのコード

@echo off
setlocal enabledelayedexpansion

REM 作業対象フォルダを設定
set "target_folder=C:\path\to\your\folder"

REM ファイル一覧を取得して昇順に並び替え
for /f "delims=" %%i in ('dir /b /a-d "%target_folder%" ^| sort') do (
    REM ファイルごとの処理
    set "file_path=%%i"
    echo Processing file: !file_path!
)

endlocal
pause
@echo off
setlocal enabledelayedexpansion

REM 特定のフォルダを設定
set "target_folder=C:\path\to\your\folder"
REM 自身のバッチファイル名を取得
set "exclude_file=%~nx0"

REM フォルダ一覧を取得してループ
for /D %%d in ("%target_folder%\*") do (
    REM フォルダのパスを取得
    set "folder_path=%%d"

    REM 自身のバッチファイルを除外
    if /I "!folder_path!" neq "%exclude_file%" (
        REM ここで各フォルダに対する操作を行う
        echo Processing folder: !folder_path!
    )
)
endlocal
pause

pythonのコード

import tarfile
import os
import shutil

def extract_tar_to_folder(tar_gz_path, output_folder):
    # すでにフォルダが存在している場合削除して再作成
    if os.path.exists(output_folder):
        shutil.rmtree(output_folder)
    os.makedirs(output_folder)

    # tar.gzファイルを展開
    with tarfile.open(tar_gz_path, 'r:gz') as tar:
        tar.extractall(path=output_folder)

# .tar.gzファイルのパス
tar_gz_file = 'example.tar.gz'
# 展開後のフォルダ名(tar.gzファイル名に基づいて決定)
output_folder = os.path.splitext(os.path.splitext(tar_gz_file)[0])[0]

extract_tar_to_folder(tar_gz_file, output_folder)
print(f"Files have been extracted to {output_folder}")

SPOOLの利用方法

以下コマンドでクエリの結果をファイルに出力できる。

ファイルの出力先は、現在の作業ディレクトリ。絶対パスを指定することもできる。

基本的な使い方

-- SPOOLを開始し、出力ファイルを指定
SPOOL employees.txt

-- SQLクエリを実行
SELECT employee_id, first_name, last_name, hire_date FROM employees;

-- SPOOLを終了
SPOOL OFF

CSVファイル

-- ヘッダーをオフにする
SET HEADING OFF
-- 罫線をオフにする
SET FEEDBACK OFF
-- カラム区切りをスペースからカンマに変更
SET COLSEP ","

SPOOL employees.csv

SELECT employee_id, first_name || ',' || last_name || ',' || TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees;

SPOOL OFF

-- 元に戻す
SET HEADING ON
SET FEEDBACK ON
SET COLSEP " "

ファイルをDBに一括登録する方法

実行コマンド

sqlldr username/password@database control=control_file.ctl

Cntrolファイルの作成

固定長ファイルの場合

-- control_file.ctl
LOAD DATA
INFILE 'fixed_length_data.txt'
INTO TABLE my_table
(
    first_name             POSITION(1:7)   CHAR,
    last_name              POSITION(8:14)  CHAR,
    dob                    POSITION(15:22) CHAR "TO_DATE(:dob, 'YYYYMMDD')",
    phone_number           POSITION(23:25) CHAR
)

CSVファイルの場合

-- control_file.ctl
LOAD DATA
INFILE 'data.csv'
INTO TABLE my_table
FIELDS TERMINATED BY ','
(
   column1,
   column2,
   column3
)

コメント

タイトルとURLをコピーしました