注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oracle、MySQL资料及经验

.

 
 
 

日志

 
 

带字符类型变量的动态sql  

2015-06-09 15:58:20|  分类: sql与pl/sql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如下动态sql报错:
declare
    v_周开始日期 date := sysdate;
begin
    execute immediate 'create table tickettempb as
    select *
      from jpplcount
     where to_char(stat_time, ''yyyy-mm-dd'') >=
                      to_char(' || v_周开始日期 || ', ''yyyy-mm-dd '')';
end;

ORA-00907: 缺失右括号
ORA-06512: 在 line 5
来源: <http://www.itpub.net/thread-1924531-1-1.html>
 
经咨询,正确写法是:
declare
    v_周开始日期 date := sysdate;
    v_mod_num    number; 
begin
    execute immediate 'create table tickettempb as    
    select *
      from ticket.jpplcount
     where to_char(stat_time, ''yyyy-mm-dd'') >='''|| to_char( v_周开始日期, 'yyyy-mm-dd')||'''';
end;  


 

其他参考:

declare
v_date date := to_date('1980-01-01', 'yyyy-mm-dd');
v_sql varchar2(1000);
begin
v_sql:= 'create table t as select * from emp where hiredate >= to_date('''||to_char(v_date, 'yyyy-mm-dd') ||''',''yyyy-mm-dd'')';
execute immediate v_sql;
end;
/
declare
    v_周开始日期 varchar2(10) :='2015-05-01';
    v_sql   varchar2(1000);
begin
    --execute immediate 'alter session set nls_date_format=''yyyy-mm-dd''';
    v_sql:= 'create table tickettempb as select * from ticket.jpplcount_nticket jj where jj.stat_time >= to_date('''||v_周开始日期||''',''yyyy-mm-dd'')';
    dbms_output.put_line(v_sql);
    execute immediate v_sql;
end;  

  评论这张
 
阅读(90)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018