动态字段和动态游标的问题

jsidiot 2007-01-10 05:11:12
select * into newrow from table_name where a = b;
table_name表中的字段数及字段名不确定
是根据配置表中取得的
那我如何动态取得newrow.columnname的值那?
谢谢
...全文
453 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsidiot 2007-01-12
  • 打赏
  • 举报
回复
nobody can?
jsidiot 2007-01-12
  • 打赏
  • 举报
回复
jsidiot 2007-01-11
  • 打赏
  • 举报
回复
得到字段名之后那?
怎么获取相应的字段的值?
newrow.XX ??
xx是变量,能这么用么?
william3033 2007-01-11
  • 打赏
  • 举报
回复
也许没理解你的意思。
你既然知道表名了,从配置表中取得的话,你根据这个表名用那句话就可以得到每个字段名。

或者你这个表示虚拟的?并不存在?
jsidiot 2007-01-11
  • 打赏
  • 举报
回复
我想问一下楼上的
'newrow.'||variable
这么做你实现过么?
你说的那是已知字段,直接就可以出来
如果未知字段那?
william3033 2007-01-11
  • 打赏
  • 举报
回复
楼主,用kingsunsha的方法可以实现,例如表名为test:
select COLUMN_NAME from user_tab_columns where table_name='TEST'

可以查出一个表的字段名,然后你根据需要就可以取相应的字段名来用了。

jsidiot 2007-01-11
  • 打赏
  • 举报
回复
newrow是table_name%rowtype类型的东东

若 table_name中存在某字段为aa
则直接可以使用newrow.aa得到字段的值

现在的问题是,如果字段不确定那?字段名未定,字段名是一个变量
'newrow.'||variable
就是实现这么一个效果
我说的楼上的懂了么?
jsidiot 2007-01-11
  • 打赏
  • 举报
回复
表名是固定的,只是字段不固定
select * into newrow from table_name where id=5;
dbms_output.put_line(newrow(0));
楼上的这样好像报错唉
Error: PLS-00222: 在此范围中不存在名为 'newrow' 的函数
swswssw 2007-01-11
  • 打赏
  • 举报
回复
newrow是table_name%rowtype类型的东东...
首先你的多个table_name结构应该相同吧,不然这个newrow也成了动态的了
可以用newrow(0),newrow(1)......不用写列名只用索引号来取列值
jsidiot 2007-01-11
  • 打赏
  • 举报
回复
可以解决么?
jsidiot 2007-01-11
  • 打赏
  • 举报
回复
to:Eric_1999(╙@^@╜)
如果是不能确定的字段名称那?
如何取得该字段对应的值那?
Eric_1999 2007-01-11
  • 打赏
  • 举报
回复
用游标
cursor c1 as
select * from table_name where a = b;

要用某列就c1.column
KingSunSha 2007-01-10
  • 打赏
  • 举报
回复
看不懂问题。

select * from table_name where a = b; 是游标?

newrow是什么?

newrow中的字段应该table_name决定的,用
select * from user_tab_columns where table_name='TABLE_NAME'
可以查到
jsidiot 2007-01-10
  • 打赏
  • 举报
回复
自己顶

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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