请教一个oracle动态语句瓶装问题。我在存储过程里要执行类似这样的语句:
update table_name t set t.password='.'||id||'.' ---id是表的一个字段
不再存储过程里能执行
写成 sqlstr:='update table_name t set t.password='||chr(39)||'.'||chr(39)||'id'||chr(39)||'.'||chr(39) ;
execute imedte** sqlstr请问要怎么样拼接这个字符串。谢谢
update table_name t set t.password='.'||id||'.' ---id是表的一个字段
不再存储过程里能执行
写成 sqlstr:='update table_name t set t.password='||chr(39)||'.'||chr(39)||'id'||chr(39)||'.'||chr(39) ;
execute imedte** sqlstr请问要怎么样拼接这个字符串。谢谢
解决方案 »
- Oracle 11还能不能建立前缀索引
- 简单查询问题
- 单机,如何导入到用户默认的表空间里?
- 远程oracle数据库能ping通但配置net时提示“测试失败-操作超时”?请教问题何在?
- 急救:如何将一个SQL查询结果赋给C++的一个变量
- JDK1.3 和JDK1.4这两个环境下,连接Oracle数据库有什么区别?报错:java.lang.NoClassDefFoundError: java/sql/Savepoint
- oracle 9i 安装问题,请各位高手帮忙!
- 郁闷,一个超级简单的问题就把我困死了,只怪oracle的提示太没含义了。耽误大家一分钟来帮帮我!
- 请教个菜鸟问题,谢谢
- 触发器+序列实现的自增列,从20跳到40,再41、42。。。。过了一天又跳到60
- role_sys_privs与dba_sys_privs区别
- mysql 创建数据库,那oracle呢?
sqlstr := 'update table_name t set t.pass=' || chr(39) || '.' || chr(39) ||
'||id||' || chr(39) || '.' || chr(39); --2.上面一个实在太难理解,这个吧
sqlstr := 'update t1 set t1.pass=''.''||id||''.''';
--你不是想将这句sql:update table_name t set t.password='.'||id||'.'
--拼接成动态sql嘛!
--从上面的update语句可以看出来,password的组成为:.id.
--所以,你的chr(39),也就是'这个符号可以不要了
--得出下面两种方法,其实都一样
sqlstr :='update table_name t set t.password='||'.'||id||'.';
sqlstr:='update table_name t set t.password=.'||id||'.';更多关于单引号和双引号,请参考:
oracle 中使用单引号(')和双引号(")
--如果你的本意是将单引号也加上的话,这样写:
sqlstr :='update table_name t set t.password='''||'.'''||id||'''.''';
sqlstr:='update table_name t set t.password=''.'''||id||'''.''';
--拼接成动态sql嘛!
--从上面的update语句可以看出来,password的组成为:.id.
--所以,你的chr(39),也就是'这个符号可以不要了
--得出下面两种方法,其实都一样
sqlstr :='update table_na……
[/Quote]试过了,这样写不行,提示必须明确标识符id。
我看这个是密码验证,密码的话一般允许特别字符的。比如【-】等。
这种情况最好用绑定变量,不要拼SQL语句。