execute immediate('CREATE TABLE ALERT_LOG (CONTENT varchar2(5),re VARCHAR2(2000) )ORGANIZATION EXTERNAL( TYPE ORACLE_LOADER DEFAULT DIRECTORY ALERT_DIR ACCESS PARAMETERS( RECORDS DELIMITED BY NEWLINE NOBADFILE NOLOGFILE NODISCARDFILE FIELDS TERMINATED BY '','' MISSING FIELD VALUES ARE NULL (re,CONTENT))LOCATION(''relta.txt''))PARALLEL 5 REJECT LIMIT UNLIMITED;');向各位求救,上面的语句错在哪里????该如何实现??
解决方案 »
- 一个关于Oracle触发器的问题
- 我的机器是win7 64位,现在想要安装一个oracle9可是网上找不到资源啊
- 求个函数,在线等啊
- java操作blob问题
- 请问如何写这个SQL
- 大数据量的数据查询
- 请问:如何在数据库中将一个字符串中的一个字符更改成另一个字符,但是这个字符的位置并不固定.谢谢.
- sys的用户密码丢了,怎么办?
- 使用Corelab的OraDirect .NET Data Provider连接并访问oracle数据库,问题!!!
- 请帮我看一下,怎么insert不进去?在线求助!
- oracle 恢复数据
- 启用OracleOraHome90HTTP服务“Serverhttpservice 进程意外终止”
这一句直接执行是没有问题的..主要错误是出在 'relta.txt' 这里/
(CONTENT varchar2(5),rep VARCHAR2(2000) )
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ALERT_DIR
ACCESS PARAMETERS(
--RECORDS DELIMITED BY NEWLINE
--NOBADFILE NOLOGFILE NODISCARDFILE
FIELDS TERMINATED BY ',') --MISSING FIELD VALUES ARE NULL (re,CONTENT))
LOCATION('a'))--PARALLEL 5
REJECT LIMIT UNLIMITED
create directory ALERT_DIR as '/home/oracle'
select * from alert_log
这是我根据你要求写的
你所连接的数据库服务器和你的机器是否在同一台机器上
directory应该和数据库服务器是同一台机器
直接执行是没有问题的..就是动态执行时说语句错误
execute immediate('CREATE TABLE ALERT_LOG (CONTENT varchar2(5),re VARCHAR2(2000) )ORGANIZATION EXTERNAL( TYPE ORACLE_LOADER DEFAULT DIRECTORY ALERT_DIR ACCESS PARAMETERS( RECORDS DELIMITED BY NEWLINE NOBADFILE NOLOGFILE NODISCARDFILE FIELDS TERMINATED BY '','' MISSING FIELD VALUES ARE NULL (re,CONTENT))LOCATION(''relta.txt''))PARALLEL 5 REJECT LIMIT UNLIMITED');
提示的是无效sql语句
把分号去掉试试。
execute immediate('CREATE TABLE ALERT_LOG (CONTENT varchar2(5),re VARCHAR2(2000) )ORGANIZATION EXTERNAL( TYPE ORACLE_LOADER DEFAULT DIRECTORY ALERT_DIR ACCESS PARAMETERS( RECORDS DELIMITED BY NEWLINE NOBADFILE NOLOGFILE NODISCARDFILE FIELDS TERMINATED BY '','' MISSING FIELD VALUES ARE NULL (re,CONTENT))LOCATION(''relta.txt''))PARALLEL 5 REJECT LIMIT UNLIMITED');
后面直接跟字符串操作语句,不用加'('
你也可以将你的语句放入一个字符串中在添加到
Execute Immediate 之后;execute immediate 'CREATE .......';
或者
Sqlstr := 'CREATE .......';
Execute Immediate Sqlstr;