首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

这样的脚本在Oracle中为什么就不能执行?解决方案

2012-02-21 
这样的脚本在Oracle中为什么就不能执行?SELECT*FROMTableNamewhere10,11,13,12,40,47,48,49,90,92,91,94,9

这样的脚本在Oracle中为什么就不能执行?
SELECT   *   FROM   TableName  
where   '   10,   11,   13,   12,   40,   47,   48,   49,   90,   92,   91,   94,   95,   96,   30,   31,   33,   34,   35,   24,   20,   21 '   like   '%   '+menuid+ ',% '   order   by   menuid  
上面这段我在MS   SQL中可以正常执行,但放到oracle中就提示无效数字错误,上面这句语句在Oracle中应该怎么写?menuid是表TableName中的一列,里面的记录内容就可能是10或11....

[解决办法]
在oracle中:

SELECT * FROM TableName
where munuid in (10,11,13,12,40,47,48,49,90,92,91,94,95,96,30,31,33,34,35,24,20,21 ') order by menuid;



[解决办法]
CREATE TABLE ta(menuid VARCHAR2(20),aaa VARCHAR2(20))

oracle中连接用||
INSERT INTO ta
SELECT '10 ', 'aa ' FROM dual
UNION
SELECT '20 ', 'bb ' FROM dual
UNION
SELECT '30 ', 'bb ' FROM dual
UNION
SELECT '11 ', 'bb ' FROM dual
UNION
SELECT '210 ', 'bb ' FROM dual


SELECT * FROM ta
WHERE ' 10, 11, 13, 12, 40, 47, 48, 49, 90, 92, 91, 94, 95, 96, 30, 31, 33, 34, 35, 24, 20, 21 '
LIKE '% '||TO_CHAR(menuid)|| ',% ' ORDER BY menuid
[解决办法]
oracle连接符是||,不是+

热点排行