变量列号pl / sql游标

时间:2015-02-17 15:36:40

标签: oracle plsql cursor

我有一个返回Select子句的函数,该子句具有可变数量的列(从2到31)。然后,我需要使用第一个+每个其他列插入到表中。例如,如果我的Select返回:('A','1','2','3')我需要插入('A','1'),('A','2')和( 'A','3')进入给定的表格。问题是我不知道原始Select子句中有多少列。

我尝试使用Select子句打开游标但是,有什么方法可以知道游标有多少列,然后分别获取它们?有没有其他方法可以做到这一点?

提前多多感谢,

安德。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

谢谢,

我终于设法解决了这个问题。正如Sanders所说,使用dbms_sql,我打开游标,解析它,用describe_columns获取列号,然后在循环中定义它们的格式(幸运的是,它们都是varchar2(6))。

最后,当我获取所有行时,我使用dbms_sql.column_value来获取每列的值。