我正在使用Oracle 10g,SQL Developer 我想知道是否有任何方法可以从CSV文件中导入数据,这些字段由','这些行由' \ n'终止使用SQL查询 我试过这个查询
LOAD DATA INFILE 'C:/tmp.csv' INTO TABLE CSVTEST2 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 lines (ID,FIRSTNAME,LASTNAME,BIRTHDATE);
但它没有用,我总是收到来自sql Developer的错误消息告诉我未知命令
答案 0 :(得分:4)
您需要使用sqlldr实用程序才能加载数据。首先根据您的要求创建一个控制文件(以.ctl的扩展名结尾),如下所述。
fetchEvent(): Promise<EventModel> {
return this._apiService.get.event(this.eventId);
}
ngOnInit() {
this.fetchEvent().then(event => this.ev = event);
}
现在执行sqlldr实用程序以加载数据,如下所述。
load data
infile 'path_where_file_is_placed_followed_by_file_name'
into table table_name_where_you_want_to_insert_the_data_of_csv_file
fields terminated by ',' lines terminated by '\n'
(
field1 datatype,
field2 datatype,
field3 datatype
)
答案 1 :(得分:3)
你应该使用Oracle SQL Loader,不是 sqlplus或SQL Developer
或者,您可以使用external tables:
-- this command must be executed on the Oracle server machine, NOT on the client:
create directory ext_tab_dir as '/path/to/dir/where/you/will/put/your/csv/files';
CREATE TABLE emp_load (
employee_number CHAR(5),
employee_last_name CHAR(20),
employee_first_name CHAR(15),
employee_middle_name CHAR(15)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_dir
ACCESS PARAMETERS (RECORDS FIXED 62
FIELDS (
employee_number CHAR(2),
employee_dob CHAR(20),
employee_last_name CHAR(18),
employee_first_name CHAR(11),
employee_middle_name CHAR(11)
)
)
LOCATION ('tmp.csv'));
答案 2 :(得分:1)
Windows 10和Oracle 12c上的示例
如果你有一个文本文件,其中包含用逗号分隔的每个表的记录,你可以这样做:
为每个表创建一个名为table_name.ctl的控制文件(C:\ Users \ user \ Desktop \ directory \ table_name.ctl)
<% @shoes.in_groups_of(5) do |shoe_groups| %>
<% shoe_groups.each do |shoe| %>
<%= shoe.name %>
<% end %>
<%= 'Green Box' if shoe_groups.size % 5 == 0 %>
<% end %>
之后,在Windows中,您应该打开Cmd并在每个表中加载数据,然后远程加载数据,例如在aws服务器中。
load data
infile 'C:\Users\user\Desktop\directory\table_name.txt'
append
into table table_name
fields terminated by ","
(id, field2,field3)
或
sqlldr userid=USER@AWS_PDB1/password
control='C:\Users\user\Desktop\directory\table_name.ctl' log='C:\Users\user\Desktop\directory\table_name.log'
如果您遇到以下错误:“程序无法启动,因为您的计算机缺少oranfsodm12.dll。请尝试重新安装该程序以解决此问题。“
这是因为SQL * Loader
已禁用,无法在控制台窗口中使用,这已解决
启用以下步骤(如ignore-loader
):
应该转到该文件夹 C:\ ORACLE \客户\用户\产品\ 12.1.0 \的Client_1 \ BIN
制作oraodm12.dll文件的副本,并调用新文件 oranfsodm12.dll,并将其粘贴到同一个BIN文件夹中。
再次从cmd运行命令。
答案 3 :(得分:1)
在Oracle SQL开发人员中,您只需转到左侧的表格列表,该列表应位于connections
下。
然后双击表&gt;行动&gt;导入数据
然后,您可以使用导入向导和所需的设置。当您提出这个问题时,我不确定Oracle SQL开发人员中是否存在该功能,但现在可以使用了。