数据库对象 字符串连接符||

来源:互联网 发布:热血霸业(神奇网络) 编辑:程序博客网 时间:2024/04/30 01:20

比如我想要一个这样的字符串:

'select * from test where sj>='2009-04-1' and sj<='2009-5-1' '

 

然我们申请的变量是这样的:

declare 

str1 varchar2(100):='2009-04-1' ;

str2 varchar2(100):='2009-5-1' ;

sqlstr varchar2(100):=' select * from test  ';

 

begin

 

  sqlstr:=sqlstr ||'where sj>='|| str1 ||' and sj<='||str2;

  Dbms_Output.put_line(sqlstr);

end;
结果却是:

 select * from test  where sj>=2009-04-1 and sj<=2009-5-1

这是条错误语句 不能够执行;

 

想一下原因很明白 我的单引号 不见了!

我于是改为:

 

 sqlstr:=sqlstr ||' where sj>='||''''|| str1||''''||' and sj<='||''''||str2||'''';

 

得到我想要的结果:

 select * from test  where sj>='2009-04-1' and sj<='2009-5-1';

 

其中的奥秘 大家自已体会! 我为此郁闷一天啦!!

 

原创粉丝点击