【发布时间】:2021-08-30 13:56:17
【问题描述】:
TEMP表:
| Node | Curr_Cnt | Prev_Cnt | Diff |
|---|---|---|---|
| First | 20 | 40 | 20 |
| Second | 30 | 70 | 40 |
CREATE OR REPLACE FUNCTION NEW_FUNCTION
RETURNS table
IS
c_rec TEMP%ROWTYPE;
TYPE c_tab IS TABLE OF c_rec%TYPE INDEX BY PLS_INTEGER;
l_c_tab c_tab;
BEGIN
SELECT * INTO c_tab FROM
--**The below with clause starting from with returns the same table structure as above temp table**
( WITH batch_id_dtl AS
(SELECT a.*,
rownum rnum
FROM
(SELECT MIN(creation_date) min_cr,
MAX(creation_date) max_cr,
batch_id
FROM oalterr.q_audit_results
GROUP BY batch_id
ORDER BY 1 DESC
)a
WHERE BATCH_ID <= 251940
),
curr_cnt AS
......rest of the code......
);
RETURN C_TAB;
END NEW_FUNCTION;
上述函数返回如下错误:
表达式“C_TAB”不适合作为赋值语句的左侧。
谁能告诉我应该在返回部分添加什么类型以及在begin和end之间的执行部分我做错了什么。
【问题讨论】:
-
请更正您问题下方的标签(使用edit)。
plsql与 Oracle 有关,注意与mysql有关,因此,当前的标签组合似乎不正确。 -
另外,请不要标记PL/SQL Developer 之类的工具,除非问题是如何使用它们。
标签: oracle stored-procedures plsql plsqldeveloper stored-functions