如下的语句:
execute immediate 'SELECT SJ - TO_DATE('2009-11-22', 'yyyy-mm-dd hh24:mi:ss') FROM TEMP_TABLE
where rownum<2' INTO V_NUM;这样写不可以吗?~~~为什么呢~~?
execute immediate 'SELECT SJ - TO_DATE('2009-11-22', 'yyyy-mm-dd hh24:mi:ss') FROM TEMP_TABLE
where rownum<2' INTO V_NUM;这样写不可以吗?~~~为什么呢~~?
解决方案 »
- 求助
- Oracle XML Publisher 輸出PDF Report如何及時列印
- 那位兄弟在用legato的networker备份啊,急(100)?
- 请问如何用sql语言只获得数据库中日期格式为"yyyy/mm/dd"的数据?谢谢
- 关于Oracle数据库视图的使用问题
- 该怎么通过dblink名称查找另外一个数据库的表内容
- 怎样选出a表中a1不等于b表中b1而且a表中a2不等于b表中b2的字段值?
- 问下 为什么不能正常安装
- 为什么这样使用select 语句会出错?请大家指点错误信息的含义?
- SQL语言高手请过来回答!!!!!!!!!!(一定给分)
- 不明白我建的这个oracle函数有什么错误,运行的时候提示程序包或函数get_tablecolumn_except处于无效状态
- 查看执行计划,sqlplus和pl/sql对同一sql语句执行计划差别很大
SELECT SJ - TO_DATE('2009-11-22', 'yyyy-mm-dd hh24:mi:ss') FROM TEMP_TABLE
where rownum<2 INTO V_NUM;
需要用动态的SQL语句实现,可是我这方面很弱哎~~~~
用动态的sQL语句可以实现吗?~~~
首先你的sj 是date类型否把你的上面改成这样的
TO_DATE(''2009-11-22'', ''yyyy-mm-dd hh24:mi:ss'')
where rownum<2' INTO V_NUM;
如果这样不行 看看报什么错误
SQL> edi
已写入 file afiedt.buf 1 declare
2 v number;
3 begin
4 execute immediate 'select sysdate-TO_DATE(''2009-11-22'', ''yyyy-mm-dd hh24:mi:ss'') from dual'
5 dbms_output.put_line(v);
6* end;
SQL> /
307.44587962962962962962962962962962963PL/SQL 过程已成功完成。
把你的上面改成这样的
TO_DATE(''2009-11-22'', ''yyyy-mm-dd hh24:mi:ss'')
[/Quote]
嗯,这样执行成功了~~!!!可是为什么要多加单引号"'"呢?不明白呢~wkc168可不可以帮我讲解一下呀,O(∩_∩)O谢谢
[/Quote]转义 如果单引号里含有单引号的话 就要两个单引号
[/Quote]在动态的语句里面要是本身如时间格式含有 ' 要改为'' 这样说吧' '转意为 '可以单独的 去试试便知 下面是列子 英文字符aa's 写sql 的时候 'aa''s' 如下面的例子 1* select 'aa''s' from dual
SQL> /'AA'
----
aa's