CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  高级技术

动态SQL语句

楼主Relta(芯片)2006-03-02 12:17:52 在 Oracle / 高级技术 提问

execute   immediate('CREATE   TABLE   ALERT_LOG   (CONTENT   varchar2(5),remark   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   (remark,CONTENT))LOCATION(''relta.txt''))PARALLEL   5   REJECT   LIMIT   UNLIMITED;');  
   
  向各位求救,上面的语句错在哪里????该如何实现?? 问题点数:100、回复次数:11Top

1 楼HAPPY_FROG(大盘回锅肉)回复于 2006-03-02 12:36:10 得分 0

remark   VARCHAR2(2000)使用的是oracle的关键字,后边的东西都会作为标记了Top

2 楼qiaozhiwei(乔)回复于 2006-03-02 12:56:05 得分 0

如果不用动态sql,直接建表是否成功?Top

3 楼cenlmmx(学海无涯苦作舟)回复于 2006-03-02 13:12:34 得分 0

语法的问题最好是先用最简单的,可以添加复杂的,再可行,再增加,一点一点的加,就好判断问题的出处,好过一大堆的代码放上来等着.Top

4 楼Relta(芯片)回复于 2006-03-02 13:30:44 得分 0

CREATE   TABLE   ALERT_LOG   (CONTENT   varchar2(5),remark   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   (remark,CONTENT))LOCATION('relta.txt'))PARALLEL   5   REJECT   LIMIT   UNLIMITED;  
  这一句直接执行是没有问题的..主要错误是出在   'relta.txt'   这里/Top

5 楼HAPPY_FROG(大盘回锅肉)回复于 2006-03-02 14:08:48 得分 0

CREATE   TABLE   ALERT_LOG  
    (CONTENT   varchar2(5),remarkp   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   (remark,CONTENT))  
      LOCATION('a'))--PARALLEL   5    
      REJECT   LIMIT   UNLIMITED  
       
      create   directory   ALERT_DIR   as   '/home/oracle'  
    select   * from   alert_log  
  这是我根据你要求写的  
  你所连接的数据库服务器和你的机器是否在同一台机器上  
  directory应该和数据库服务器是同一台机器Top

6 楼Relta(芯片)回复于 2006-03-02 14:39:12 得分 0

directory   都是在同一机器上..  
  直接执行是没有问题的..就是动态执行时说语句错误Top

7 楼Relta(芯片)回复于 2006-03-03 09:41:44 得分 0

upTop

8 楼bobfang(匆匆过客)回复于 2006-03-03 10:13:51 得分 0

你是在PL/SQL中写的那句话吗?如果是,应该这样写  
  execute   immediate('CREATE   TABLE   ALERT_LOG   (CONTENT   varchar2(5),remark   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   (remark,CONTENT))LOCATION(''relta.txt''))PARALLEL   5   REJECT   LIMIT   UNLIMITED');Top

9 楼Relta(芯片)回复于 2006-03-03 18:30:09 得分 0

我也是这样想,静态中的单引号,应该改为双单引号,可就是不可以..  
  提示的是无效sql语句Top

10 楼Hangfeng(寒风)回复于 2006-03-04 17:28:49 得分 0

使用动态语句时,执行语句不用分号作结束符。  
  把分号去掉试试。  
  execute   immediate('CREATE   TABLE   ALERT_LOG   (CONTENT   varchar2(5),remark   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   (remark,CONTENT))LOCATION(''relta.txt''))PARALLEL   5   REJECT   LIMIT   UNLIMITED');Top

11 楼s198127(xyz)回复于 2006-03-07 17:50:26 得分 0

Execute   Immediate    
  后面直接跟字符串操作语句,不用加'('  
  你也可以将你的语句放入一个字符串中在添加到  
  Execute   Immediate   之后;  
   
  execute   immediate   'CREATE   .......';  
  或者  
  Sqlstr   :=   'CREATE   .......';  
  Execute   Immediate   Sqlstr;Top

相关问题

  • 求动态SQL语句
  • 请教动态SQL语句
  • asp动态构造sql语句
  • !!!!动态SQL语句问题!!!!!!!!!急
  • 请教如何动态SQL的语句?
  • 动态SQL语句的问题。
  • 一个动态SQL语句的问题!
  • SQL语句或动态建表问题?
  • 怎么动态生成SQL语句?
  • 关于动态SQL语句问题

关键词

  • 语句
  • nologfile
  • nodiscardfile
  • relta
  • remark
  • varchar2
  • newline nobadfile
  • parallel
  • unlimited
  • 动态

得分解答快速导航

  • 帖主:Relta

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo