C++ 如何从Oracle’;返回自己结构的数组/记录集;s程序
我是Oracle的新手,有一个问题。我们喜欢编写一个过程,从表中读取数据,对每一行进行处理,然后返回结果数据。这意味着结果数据将具有相同的行数,但每个列类型不能相同。这里的程序我想用C++函数返回一个结构向量。 表结构如下所示C++ 如何从Oracle’;返回自己结构的数组/记录集;s程序,c++,sql,oracle,C++,Sql,Oracle,我是Oracle的新手,有一个问题。我们喜欢编写一个过程,从表中读取数据,对每一行进行处理,然后返回结果数据。这意味着结果数据将具有相同的行数,但每个列类型不能相同。这里的程序我想用C++函数返回一个结构向量。 表结构如下所示 FIRST int Second VARCHAR2(20) Third int 那么回报结构将是 FIRST int Second int Third int; Fourth int; 简而言之,我如何从Oracle的过程中返回我自己的数据结构的数组/记录集。至少有两
FIRST int
Second VARCHAR2(20)
Third int
那么回报结构将是
FIRST int
Second int
Third int;
Fourth int;
简而言之,我如何从Oracle的过程中返回我自己的数据结构的数组/记录集。至少有两种方法:
- 表格功能:
要了解更多信息,请查看管道/管道,谢谢Zaratura!!你的例子对我帮助很大。 CREATE FUNCTION <YOUR_NAME_OF_FUNCTION> (...) RETURN <TABLE_TYPE> AS l_table := (); BEGIN FOR i IN 1 .. N LOOP l_table.extend; l_table(l_table.last) := (some, data, for, table, type); END LOOP; RETURN l_tab; END; CREATE FUNCTION <YOUR_NAME_OF_FUNCTION> (...) RETURN <TABLE_TYPE> PIPELINED AS BEGIN FOR i IN 1 .. N LOOP PIPE ROW((some, data, for, table, type)); END LOOP; RETURN; END;
SELECT *
FROM TABLE(<YOUR_NAME_OF_FUNCTION>(...))
CREATE tab_type is table of NUMBER(10)