.CSV
ファイルをOracleテーブルにインポートするplsqlストアドプロシージャを手伝ってもらえますか?ファイル名とテーブル名を受け入れるプロシージャを作成したい。CSVをOracleデータベースにインポート
注:私はUTF-8のファイル形式
.CSV
ファイルをOracleテーブルにインポートするplsqlストアドプロシージャを手伝ってもらえますか?ファイル名とテーブル名を受け入れるプロシージャを作成したい。CSVをOracleデータベースにインポート
注:私はUTF-8のファイル形式
を使用していますが、ディレクトリを作成し、そのファイルを持っているフォルダを指すように設定しなければなりません。
create or replace procedure get_file (p_dir varchar2, p_file varchar2)
is
line varchar2(4000);
v_file utl_file.file_type;
begin
v_file := utl_file.fopen(p_dir,p_file,'R');
loop
utl_file.get_line(v_file,line);
-- insert code here
dbms_output.put_line(line);
end loop;
exception when others then
-- The only way to know when we reach the end of the file is to get and exception
utl_file.fclose(v_file);
end;
しかし、UTF8ファイルタイプを持っています – vasanti
そして、私のコードに基づいて、何が問題ですか? –
データベースに格納されているpl/sqlプロシージャは、デスクトップ上で操作できません。あなたは、この目的の
ファイル(のような答えの一つでget_file
)を読み取るために、いくつかの手順を記述します。これはテーブルのように扱われるが、ファイルからデータを読み込むオブジェクトです。それを達成するためには、必要な権限をすべて作成する必要があります。
CREATE OR REPLACE DIRECTORY imp_data AS 'c:\tmp\';
したり、サーバー上の他のパスのディレクトリ: だから最初directortを作成します。次は今、最良の部分:)
CREATE TABLE imp_data (
ID NUMBER(20),
NAME VARCHAR2(50),
CITY VARCHAR2(200)
)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER --this is the read-file driver
DEFAULT DIRECTORY imp_data
ACCESS PARAMETERS
RECORDS DELIMITED BY NEWLINE
BADFILE 'bad'
LOGFILE 'log'
FIELDS TERMINATED BY ',' -- CSV terminate mark
(ID, NAME, CITY)) -- the order of the columns in the file
LOCATION ('dane.csv')) -- name of file
PARALLEL 5
REJECT LIMIT 200; -- numbers of bad row before break import
は、データベース・サーバー上のファイル(またはそれへのアクセス)がある、または一部のデスクトップに
を付与する必要がありますか? –
デスクトップのみです。 – vasanti