Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从Oracle’;返回自己结构的数组/记录集;s程序_C++_Sql_Oracle - Fatal编程技术网

C++ 如何从Oracle’;返回自己结构的数组/记录集;s程序

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的过程中返回我自己的数据结构的数组/记录集。至少有两

我是Oracle的新手,有一个问题。我们喜欢编写一个过程,从表中读取数据,对每一行进行处理,然后返回结果数据。这意味着结果数据将具有相同的行数,但每个列类型不能相同。这里的程序我想用C++函数返回一个结构向量。 表结构如下所示

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)