关于sql写法的几个问题

guolxwz 2009-02-12 12:41:42
1. 在db2中sql有一种写法 如 select * from new table(update table_test set col_test='1')
这样就实现了在select中更新表数据的功能,现在想在oracle中实现,怎么实现呢?

2.如果从java中传了一个参数给数据库如:1,2,3,4,5 现在数据库想把这个参数当做5行来处理

如:value
1
2
3
4
5
通过什么来实现呢,在db2中可以用 values 1,2,3,4,5 就可以得到这样的结果,在oracle中如何得到这样的结果


...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolxwz 2009-02-12
  • 打赏
  • 举报
回复
1.
select * from new table(update table_test set col_test='1')
实现的功能不仅是修改数据,还把被修改的数据查出来了,我要的是这个效果 update table_test set col_test='1';
只是单纯的修改了数据啊。

2.
我希望的是oracle执行一个sql得到
value
1
2
3
4
5
这样的结果
例如:
select 1 from dual
union
select 2 from dual
......

但是由于传过来的参数的个数不确定所以用这种方法就不能实现,所以我希望得到一个最后是funtion 实现这样的功能
思路应该是循环这个传过来的参数当里面有逗号时就对参数进行拆分,直到其中没有逗号为止,最后把所有的拆分结果组装成一个结果集返回,由于对方法和过程的写法不太熟,所有请大家帮帮忙
yf520gn 2009-02-12
  • 打赏
  • 举报
回复
1.update table_test
set col_test='1';
2,你希望ORACLE对这个参数做什么呢?如果你不配合一定的SQL语句或者存储过程的话,ORACLE是不会接收这个参数的
代码摆渡人 2009-02-12
  • 打赏
  • 举报
回复
2. 可以用UNION或者用DECODE方法实现.
guolxwz 2009-02-12
  • 打赏
  • 举报
回复
那谁能帮我把第二个问题解决一下呢,贴一个方法或者过程的代码上来,不胜感激!!
guolxwz 2009-02-12
  • 打赏
  • 举报
回复
好的,那谁能帮我把第二个问题解决一下呢,贴一个过程或者方法的代码上来,不胜感激!
fulianglove 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guolxwz 的回复:]
1.
select * from new table(update table_test set col_test='1')
实现的功能不仅是修改数据,还把被修改的数据查出来了,我要的是这个效果 update table_test set col_test='1';
只是单纯的修改了数据啊。

2.
我希望的是oracle执行一个sql得到
value
1
2
3
4
5
这样的结果
例如:
select 1 from dual
union
select 2 from dual
......

但是由于传过来的参数的个…
[/Quote]
不同的数据库本来就有自己不同的功能,特色。不是所有的数据库都一样的
这实际上是DB2没有遵守SQL的标准而不是ORACLE,ORACLE没有这种功能不奇怪。
又不是不可间接实现,如楼上
yf520gn 2009-02-12
  • 打赏
  • 举报
回复
1:你在写个SELECT不就好了~~
2:你要实现这样的功能可以使用存储过程,返回给你一个游标;详情可以用GOOGLE搜索

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧