私は Oracle ApEx を使用していますが、単一列の csv ファイルを Oracle テーブルにアップロードして ApEx 内で使用するための最良の方法を知りたいと思っていました。
ありがとう。
私は Oracle ApEx を使用していますが、単一列の csv ファイルを Oracle テーブルにアップロードして ApEx 内で使用するための最良の方法を知りたいと思っていました。
ありがとう。
私はあなたと同じ問題を抱えていました。あなたはおそらくすでに解決策を見つけていますが、私はこのリンク http://forums.oracle.com/forums/thread.jspa?threadID=545565の方法に従って おり、私にとってはうまくいきます。彼らは外部テーブルを使用しました。列の最大数は 50 です。
他のオプションはhttp://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/ ですが、CSVに特殊文字が含まれていると実行されないことがわかりましたちゃんと。
これが何らかの形で役立つことを願っています。
SQLLOADER を使用して CSV ファイルをロードするには、次の手順を実行する必要があります。
(a) CSV ファイル (b) SQLLOADER 制御ファイル (CTL ファイルとも呼ばれる) (c) (b) の CTL ファイルを使用して (a) の CSV ファイルをロードする SQLLOADER コマンド。
CSV ファイル、既にそれを持っています。この例では、ファイル名は temp.csv で、2 つの列が含まれています。
A,100
B,200
C,300
D,400
ここで、ファイル、ロード先のテーブル、およびロード方法を記述するコントロールを作成する必要があります。この例では、制御ファイル名は temp.ctl で、ロード先のテーブルは 2 つの列を含む TEMP_TABLE で、COLUMN_1 は VARCHAR2(2)、COLUMN_2 は NUMBER です。temp.ctl は以下のようになります
LOAD DATA
APPEND
INTO TEMP_TABLE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
COLUMN_1 CHAR,
COLUMN_2 Integer EXTERNAL
)
大きなファイル:
小さなファイル:
awkでできます。
.csv データからテーブルにデータを入力する方法の例を次に示します。
SQL> create table MY_TABLE(a varchar2(100), b varchar2(100));
[oracle@myora ~]$ tail Some_Input_CSV_file
Some Data A 1,Some Data B 1
Some Data A 2,Some Data B 2
Some Data A 3,Some Data B 3
Some Data A 4,Some Data B 4
Some Data A 5,Some Data B 5
Some Data A 6,Some Data B 6
Some Data A 7,Some Data B 7
Some Data A 8,Some Data B 8
Some Data A 9,Some Data B 9
Some Data A 10,Some Data B 10
[oracle@myora ~]$
[oracle@myora ~]$ cat Some_Input_CSV_file | awk -F, ‘ { printf(“insert into MY_TABLE values(trim(\x27%s\x27), trim(\x27%s\x27));\n”, $1, $2); } ‘ > RunMe.sql
[oracle@myora ~]$ tail RunMe.sql
insert into MY_TABLE values(trim(‘Some Data A 1′), trim(‘Some Data B 1′));
insert into MY_TABLE values(trim(‘Some Data A 2′), trim(‘Some Data B 2′));
insert into MY_TABLE values(trim(‘Some Data A 3′), trim(‘Some Data B 3′));
insert into MY_TABLE values(trim(‘Some Data A 4′), trim(‘Some Data B 4′));
insert into MY_TABLE values(trim(‘Some Data A 5′), trim(‘Some Data B 5′));
insert into MY_TABLE values(trim(‘Some Data A 6′), trim(‘Some Data B 6′));
insert into MY_TABLE values(trim(‘Some Data A 7′), trim(‘Some Data B 7′));
insert into MY_TABLE values(trim(‘Some Data A 8′), trim(‘Some Data B 8′));
insert into MY_TABLE values(trim(‘Some Data A 9′), trim(‘Some Data B 9′));
insert into MY_TABLE values(trim(‘Some Data A 10′), trim(‘Some Data B 10′));
[oracle@myora ~]$
[oracle@myora ~]$ sqlplus myuser/mypwd@myinst
SQL> @RunMe.sql
…
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL> commit;
Commit complete.
SQL> exit