- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在包中创建一个返回表的函数。我希望在包中调用一次该函数,但能够多次重用其数据。虽然我知道我在 Oracle 中创建了临时表,但我希望保持干燥。
到目前为止,这就是我所拥有的:
标题:
CREATE OR REPLACE PACKAGE TEST AS
TYPE MEASURE_RECORD IS RECORD (
L4_ID VARCHAR2(50),
L6_ID VARCHAR2(50),
L8_ID VARCHAR2(50),
YEAR NUMBER,
PERIOD NUMBER,
VALUE NUMBER
);
TYPE MEASURE_TABLE IS TABLE OF MEASURE_RECORD;
FUNCTION GET_UPS(
TIMESPAN_IN IN VARCHAR2 DEFAULT 'MONTLHY',
STARTING_DATE_IN DATE,
ENDING_DATE_IN DATE
) RETURN MEASURE_TABLE;
END TEST;
CREATE OR REPLACE PACKAGE BODY TEST AS
FUNCTION GET_UPS (
TIMESPAN_IN IN VARCHAR2 DEFAULT 'MONTLHY',
STARTING_DATE_IN DATE,
ENDING_DATE_IN DATE
) RETURN MEASURE_TABLE IS
T MEASURE_TABLE;
BEGIN
SELECT ...
INTO T
FROM ...
;
RETURN T;
END GET_UPS;
END TEST;
最佳答案
我想你想要一个 pipelined table function .
像这样的东西:
CREATE OR REPLACE PACKAGE test AS
TYPE measure_record IS RECORD(
l4_id VARCHAR2(50),
l6_id VARCHAR2(50),
l8_id VARCHAR2(50),
year NUMBER,
period NUMBER,
VALUE NUMBER);
TYPE measure_table IS TABLE OF measure_record;
FUNCTION get_ups(foo NUMBER)
RETURN measure_table
PIPELINED;
END;
CREATE OR REPLACE PACKAGE BODY test AS
FUNCTION get_ups(foo number)
RETURN measure_table
PIPELINED IS
rec measure_record;
BEGIN
SELECT 'foo', 'bar', 'baz', 2010, 5, 13
INTO rec
FROM DUAL;
-- you would usually have a cursor and a loop here
PIPE ROW (rec);
RETURN;
END get_ups;
END;
SELECT *
FROM table(test.get_ups(0));
L4_ID L6_ID L8_ID YEAR PERIOD VALUE
----- ----- ----- ---------- ---------- ----------
foo bar baz 2010 5 13
1 row selected.
关于plsql - 创建一个返回表的 Oracle 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829880/
在表列中,我有这个值: DV-2011-01-000004(数据类型为varchar2) 我怎样才能得到字符串“000004”的一部分?在 t-sql 中,他们有这个 right() 函数,但在 PL
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
当我在 plsql 过程的主体中使用 create 语句时,出现错误PLS-00103 在期望以下之一时遇到符号创建....谁能告诉我这是什么原因和解决方案。 最佳答案 在 PL/SQL 中你不能直接
我一直在使用 PL/SQL 为 Oracle db 创建包,我正在尝试找到一种不使用“put_line”命令来调试 PL/SQL 包的好方法,有没有人有一些关于如何成功调试一个好的提示Toad 或 S
我有一个函数会返回一个类型为 my_table%ROWTYPE 的记录,在调用者中,我可以检查返回的记录是否为空,但是 PL/SQL 提示 if 语句 PLS-00306: wrong number
我想在自动化测试中检查 PL/SQL 查询语法,看起来 https://github.com/porcelli/plsql-parser 可能对此有用。我并不容易找到我将如何安装和使用它。 请注意,这
1、PL/SQL官网下载 官网下载地址:https://www.allroundautomations.com/registered-plsqldev/ 或者在我的网盘下载 链接: h
我有一个充满了我想要运行的 PLSQL 脚本的目录,问题是该目录的内容是动态的,我无法知道这些脚本的名称是什么。 我必须编写一些东西来运行该目录中的所有 sql 文件,但我找不到在 PLSQL 中调用
我正在构建一个使用 PHP 从 Oracle10g 数据库服务器获取数据的应用程序。我的输入表单有一系列复选框,这些复选框通过数组提交到处理页面(代码过滤到相关元素): 处理页面调
我收到以下错误。在 SELECT CASE 语句处收到错误。 PLS-00428: an INTO clause is expected in this SELECT statement FOR RE
我对 plsql 中的动态变量有点了解。我在 EXECUTE IMMEDIATE 上收到错误“无效的主机/绑定(bind)变量名称”陈述。提前致谢。 CREATE OR REPLACE PROCEDU
我正在使用 execute immediate 在 pl/sql 中创建一个临时表,并且还在表中插入为什么要创建表。 之后我更新表格。但是我收到错误表不存在,因为它没有创建表,所以立即执行 示例代码-
我有一个程序,它每隔一小时运行一次,填充一张表。程序处理的记录很多,所以每次执行大约需要12~17分钟。 您现在是否有办法(即触发器)记录每次执行的持续时间(即记录到表中)? 最佳答案 我不知道允许自
我正在分析一些遗留代码。它是大约 80.000 行旧的 plsql 代码。乍一看,源代码中有相当多的重复内容需要删除。而不是做 diff 的手册并查看每个文件,必须有一些工具/命令行混淆来检测源代码的
我是 oracle 作业脚本的新手。我写了一些清除程序来清除所有旧数据并保留过去 3 个月的数据...程序已成功执行。当我手动调用时它也可以工作。程序如下: CREATE OR REPLACE PRO
以下是我的查询: Select Count(*) from Table1 s left join Table2 d
如何使用 put 函数。我的程序不是用 put 编译的。但 putline 工作正常。我想在同一行打印 最佳答案 下面是使用 UTL_FILE.PUT 和 UTL_FILE.PUT_LINE 调用的代
使用关联数组时可以使用SELECT FROM吗?我正在通过.NET应用程序将数组传递给存储过程,并且我希望能够从另一个表中进行选择时将该数组用作条件。可以说我要向该过程传递一个ID数组,我想能够做到这
您好,我有一个 oracle 函数已经存在于数据库中,我必须使用它。如果我如下调用该函数,它工作正常 select PKG_Util.employeedetails('12345') from dua
我在 PL/SQL 中有一个情况,我的过程每分钟都会被一个作业调用。代码如下 procedure ExecuteProc is CURSOR c1 IS SELECT * FROM t
我是一名优秀的程序员,十分优秀!