关于execute immediate 的一个使用问题求教

一个人倔强 2016-08-24 04:26:30
在这样编写的情况下一直报错,然后自己也不知道该怎么查,所以来求教,跪谢
execute immediate
'SELECT COUNT(*) FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P.DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'')
BETWEEN TO_CHAR(TRUNC(SYSDATE-1))||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE))||'' 05:29:59''' INTO SUCESS ;
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一个人倔强 2016-08-24
  • 打赏
  • 举报
回复
引用 4 楼 ghx287524027 的回复:
[quote=引用 3 楼 JonathanSam 的回复:] [quote=引用 2 楼 ghx287524027 的回复:] 'SELECT COUNT(*) FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P_DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'') BETWEEN TO_CHAR(TRUNC(SYSDATE-1),''YYYY-MM-DD'')||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE),''YYYY-MM-DD'')||'' 05:29:59''' INTO SUCESS ; 另外,要进行比较的数据格式需要是一样的
尝试了之后不知道为什么还是报一个ORA-00904:"A":invalid identifier[/quote] 你过程里还有其他语句吧,或者你有敲错的地方。看看那里有这个大写A[/quote]好的,谢谢,问题解决了
一个人倔强 2016-08-24
  • 打赏
  • 举报
回复
引用 5 楼 wmxcn2000 的回复:
提示一下: 在动态拼接 SQL 时,一个单引号,要用两个单引号代替; 第一个参数 ||' WHERE DISTRICT='||P.DSTCODE||' 改成这样的 ||' WHERE DISTRICT='''||P.DSTCODE||''' 剩下的两个日期,你自己拼接一下;
好的,谢谢,问题解决了
卖水果的net 2016-08-24
  • 打赏
  • 举报
回复
提示一下: 在动态拼接 SQL 时,一个单引号,要用两个单引号代替; 第一个参数 ||' WHERE DISTRICT='||P.DSTCODE||' 改成这样的 ||' WHERE DISTRICT='''||P.DSTCODE||''' 剩下的两个日期,你自己拼接一下;
ghx287524027 2016-08-24
  • 打赏
  • 举报
回复
引用 3 楼 JonathanSam 的回复:
[quote=引用 2 楼 ghx287524027 的回复:] 'SELECT COUNT(*) FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P_DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'') BETWEEN TO_CHAR(TRUNC(SYSDATE-1),''YYYY-MM-DD'')||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE),''YYYY-MM-DD'')||'' 05:29:59''' INTO SUCESS ; 另外,要进行比较的数据格式需要是一样的
尝试了之后不知道为什么还是报一个ORA-00904:"A":invalid identifier[/quote] 你过程里还有其他语句吧,或者你有敲错的地方。看看那里有这个大写A
一个人倔强 2016-08-24
  • 打赏
  • 举报
回复
引用 2 楼 ghx287524027 的回复:
'SELECT COUNT(*) FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P_DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'') BETWEEN TO_CHAR(TRUNC(SYSDATE-1),''YYYY-MM-DD'')||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE),''YYYY-MM-DD'')||'' 05:29:59''' INTO SUCESS ; 另外,要进行比较的数据格式需要是一样的
尝试了之后不知道为什么还是报一个ORA-00904:"A":invalid identifier
ghx287524027 2016-08-24
  • 打赏
  • 举报
回复
'SELECT COUNT(*) FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P_DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'') BETWEEN TO_CHAR(TRUNC(SYSDATE-1),''YYYY-MM-DD'')||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE),''YYYY-MM-DD'')||'' 05:29:59''' INTO SUCESS ; 另外,要进行比较的数据格式需要是一样的
一个人倔强 2016-08-24
  • 打赏
  • 举报
回复
execute immediate 
'SELECT COUNT(*)  FROM HITBCASE.'||TABLENAME ||' WHERE DISTRICT='||P.DSTCODE||' AND TO_CHAR(CREATED,''YYYY-MM-DD HH24:MI:SS'')
 BETWEEN TO_CHAR(TRUNC(SYSDATE-1))||'' 05:30:00'' AND TO_CHAR(TRUNC(SYSDATE))||'' 05:29:59''' INTO SUCESS  ;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧