当表是我在Oracle中的类型时如何显示结果

时间:2009-08-27 15:32:26

标签: oracle function plsql

我创建了一个简单的Oracle类型:

create or replace TYPE MY_TYPE AS OBJECT (ID NUMBER(30), NAME VARCHAR2(20));

然后,我创建了第二个表类型:

create or replace TYPE MY_TYPE_TABLE AS TABLE OF MY_TYPE;

最后,我创建了一个简单的函数:

create or replace FUNCTION my_function(line_id IN NUMBER) RETURN MY_TYPE_TABLE 
AS
  return_data MY_TYPE_TABLE := MY_TYPE_TABLE();
BEGIN
  return_data.EXTEND;
  return_data(return_data.count) := (MY_TYPE(10, 'BOB')) ;
  return_data.EXTEND;
  return_data(return_data.count) := (MY_TYPE(11, 'ALAN')) ;
  RETURN return_data;
END SETTLEMENT_NET_TRACKING;

我的问题:如何运行这样的结果:

10 BOB
11 ALAN

很热吗?

2 个答案:

答案 0 :(得分:2)

如果您正在寻找登录该方法,您可以使用DBMS_OUTPUT登录标准输出或使用UTL_FILE登录到文件。我在之前的问题中建议,如果你设计的东西比一个简单的应用程序更大,你将需要创建一个自定义日志记录包。

对于你的问题,它看起来像这样:

dbms_output.enable;
for i in return_data.first..return_data.last loop
  dbms_output.put_line(return_data(i).id || ' ' || return_data(i).name);
end loop;

您需要在客户端应用程序中启用输出。对于SQLPlus,在调用API之前,您将使用SET SERVEROUT ON。

答案 1 :(得分:1)

您也可以

select * from table(my_function(30))