gpt4 book ai didi

oracle - 无法编译此小型oracle 10g数据库功能

转载 作者:行者123 更新时间:2023-12-03 08:22:51 25 4
gpt4 key购买 nike

在oracle 10g R2上进行实验时,以下代码不起作用,或者我不知道该怎么做。

我预计当我传递id时,此函数的行将从STUDENTS表返回。

CREATE OR REPLACE FUNCTION OCT.GET_Student(ID_IN NUMBER) RETURN OCT.STUDENTS%ROWTYPE
IS
TYPE REC OCT.STUDENTS%ROWTYPE;
BEGIN
SELECT * INTO REC FROM OCT.STUDENTS WHERE STUD_ID=ID_IN
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERR'||SQLCODE);
END;

预期的输出将是数据库表中的一两行。
目前,我无法编译此功能。

错误返回
FUNCTION OCT.GET_STUDENT
On line: 3
PLS-00103: Encountered the symbol "OCT" when expecting one of the following:

( array limited new private range record VARRAY_ char_base
number_base decimal date_base clob_base blob_base bfile_base
table ref object fixed varying opaque sparse
The symbol "range" was substituted for "OCT" to continue.

注意我确实对表和模式具有适当的权限,并且创建了函数,但有错误。

请帮助我了解这里的问题。

最佳答案

CREATE OR REPLACE FUNCTION OCT.GET_Student(ID_IN NUMBER) RETURN OCT.STUDENTS%ROWTYPE
IS
REC OCT.STUDENTS%ROWTYPE;
BEGIN
SELECT * INTO REC FROM OCT.STUDENTS WHERE BCODE=ID_IN;
RETURN(REC); --- A FUNCTION SHOULD RETURN SOMTHING.
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERR'||SQLCODE);
RETURN(NULL); --- A FUNCTION SHOULD RETURN SOMTHING.
END;

在使用 ROWTYPE定义变量时,我们无需指定关键字 TYPE ..,因为它已经隐式为TYPE!

关于oracle - 无法编译此小型oracle 10g数据库功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22061640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com