新手求助,大家帮忙看下这俩SQL

[复制链接]
查看11 | 回复6 | 2013-11-7 10:34:33 | 显示全部楼层 |阅读模式
本帖最后由 ydjh460 于 2014-1-23 10:31 编辑
SQL> select 'update '|| table_name||' set '||column_name||'=trunc(DBMS_RANDOM.VALUE (0, 10),3);' from user_tab_columns where column_name like '%PURCHASE_PRICE%';

'UPDATE'||TABLE_NAME||'SET'||COLUMN_NAME||'=TRUNC(DBMS_RANDOM.VALUE(0,10),3);'
--------------------------------------------------------------------------------
update FORM_NEW_PROMOTION set PURCHASE_PRICE_PRO=trunc(DBMS_RANDOM.VALUE (0, 10)
,3);


SQL> select 'update '|| table_name||' set '||column_name||'=DBMS_RANDOM.STRING ('A', 10);' from user_tab_columns where column_name like '%PURCHASE_PRICE%';
select 'update '|| table_name||' set '||column_name||'=DBMS_RANDOM.STRING ('A', 10);' from user_tab_columns where column_name like '%PURCHASE_PRICE%'

*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

问题:这两个sql是一样的,唯一的不同时是DBMS_RANDOM.VALUE和DBMS_RANDOM.STRING ('A', 10),第一个随机数可以得到结果,为什么第二条随机字符SQL为什么 不能得到结果呢?

回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
trunc(DBMS_RANDOM.STRING ('A', 10),3) 这有问题吧,DBMS_RANDOM.STRING ('A', 10),产生的是字符串,用trunc是错误的吧。
回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
aaa1993007 发表于 2014-1-23 10:28
trunc(DBMS_RANDOM.STRING ('A', 10),3) 这有问题吧,DBMS_RANDOM.STRING ('A', 10),产生的是字符串,用tru ...

是的。不加trunc也是得不到结果,还是会产生那个错误
回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
单引号中间的单引号需要双写
回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
〇〇 发表于 2014-1-23 10:33
单引号中间的单引号需要双写

select 'update '|| table_name||' set '||column_name||'=DBMS_RANDOM.STRING (''A'', 10);' from user_tab_columns where column_name like '%PURCHASE_PRICE%';
到头来还是基础的问题,随机字符串()括号中的字符要用双引号,谢谢了!!


回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
ydjh460 发表于 2014-1-23 10:45
select 'update '|| table_name||' set '||column_name||'=DBMS_RANDOM.STRING (''A'', 10);' from user_ ...

说法有问题
不是双引号"
而是2个单引号''
回复

使用道具 举报

千问 | 2013-11-7 10:34:33 | 显示全部楼层
〇〇 发表于 2014-1-23 10:56
说法有问题
不是双引号"
而是2个单引号''

DBMS_RANDOM.STRING (''A'', 10) "A"这是两个单引号么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行