execute immediate 'update temp1 set c10= (select ''['' || to_char(LogTIME,''YYYY.MM'') || '']'' from TempTable )';
--上面结果返回[2009.01] execute immediate 'update temp1 set c10= (select to_char(LogTIME,''YYYY.MM'') from TempTable )';
--上面结果返回2009.01.01 但是不加.取出来的数据是正确的.
execute immediate 'update temp1 set c10= (select to_char(LogTIME,''YYYYMM'') from TempTable )';
返回的是200901 为什么? 我怎么才能让上面的语句返回2009.01这种格式?
没分了,只有20分,请见谅.
解决方案 »
- 包名和函数名无效,求解(——小小菜鸟)
- 分组查询后,结果集字段不唯一,怎么获取更多的字段?
- ORACLE9i优化请教高手,系统AIX ,IBM P550,ORACLE9i 大数量
- 请问大家locked_mode = 3是用户对该表进行了什么操作?
- 求oracle函数中调用其他语言(例如C)的语法或者实例
- 这样的sql 怎么写 请教高手
- 急:PL/SQL中的按位处理(and\or\xor)问题。
- ORACLE 连接出现:ORA-12638,凭证检索失败???
- SQL语句一问
- 为了create database,用startup nomount pfile="E:\oracle\admin\mydb\pfile\init.ora";错误信息:ORA-01081: 无法启动已在运行的 ORACLE
- 求一个oracle 函数~~~!!
- 触发器高级问题:
select to_char(LogTIME,''YYYY.MM'') from TempTable
-------------------- --------------
2009.04 17-4月 -09sys@ORCL> begin
2 execute immediate 'update temp1 set c1=(select to_char(sysdate-56,''yyyy.mm'') from dual)';
3 end;
4 /PL/SQL 过程已成功完成。sys@ORCL> commit;提交完成。sys@ORCL(192.168.21.110)> select * from temp1;C1 C2
-------------------- --------------
2009.02 17-4月 -09
cDate varchar2(10) := '';
begin
execute immediate 'select c10 from temp1' into cDate ;
dbms_output.put_line('org value:' || cDate);
execute immediate 'select to_char(SYSDATE,''YYYY.MM'') from dual' into cDate ;
dbms_output.put_line('updating value:' || cDate);
execute immediate 'update temp1 set c10 = :1' using cDate ;
execute immediate 'select c10 from temp1' into cDate ;
dbms_output.put_line('new value:' || cDate);
end;
逐步确认下
execute immediate不应该有问题的