Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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
Sql Oracle-根据参数返回查询结果的函数_Sql_Oracle - Fatal编程技术网

Sql Oracle-根据参数返回查询结果的函数

Sql Oracle-根据参数返回查询结果的函数,sql,oracle,Sql,Oracle,我正在尝试编写一个Oracle PL/SQL函数,该函数将返回应用程序的给定状态id,这样,如果返回的状态类型是特定值,我就可以将数据归档到历史记录表中 在本例中,我的状态类型为“已批准”、“待定”或“已拒绝” 到目前为止,我编写了这个函数,这样我就可以在IF语句中运行该方法,在归档数据之前检查当前状态类型 CREATE OR REPLACE FUNCTION get_status(curr_id NUMBER) RETURN VARCHAR2 AS this_type status_type;

我正在尝试编写一个Oracle PL/SQL函数,该函数将返回应用程序的给定状态id,这样,如果返回的状态类型是特定值,我就可以将数据归档到历史记录表中

在本例中,我的状态类型为“已批准”、“待定”或“已拒绝”

到目前为止,我编写了这个函数,这样我就可以在IF语句中运行该方法,在归档数据之前检查当前状态类型

CREATE OR REPLACE FUNCTION get_status(curr_id NUMBER)
RETURN VARCHAR2 AS this_type status_type;

BEGIN
    SELECT status_type 
    INTO this_type
    FROM status
    WHERE status_id LIKE curr_id;

    RETURN this_type;
END get_status;
尽管编译,我还是收到一个错误,告诉我我的PL/SQL语句被忽略了。
我是Oracle的新手,所以我可能在这里遗漏了一些简单的东西,有人能给我一些关于我的代码哪里出了问题的建议吗

提前感谢,,
Alex.

你能分享一下错误吗?当然:错误(2,31):PLS-00201:必须声明标识符“STATUS\u TYPE”,错误(5,3):PL/SQL:SQL语句被忽略——据我所知,“this\u TYPE STATUS\u TYPE”行正在将该类型的别名设置为STATUS\u TYPE(状态表中的一列)?啊哈,我明白了,这是有意义的!谢谢你,高拉夫!注:1。使用不带通配符的
like
条件等同于使用等号。如果不需要进行模式匹配,则切换到简单等号;2.在不同的情况下,您可能会:a)点击
未找到的数据
错误或b)
太多行
错误。@NicholasKrasnov:你说得对,@Alex:请记住这一点谢谢你提醒@NicholasKrasnov
CREATE OR REPLACE FUNCTION get_status(curr_id NUMBER)
RETURN VARCHAR2 
AS 
--%TYPE is used to declare variables with relation to the data type of a column 
--in an existing table 

this_type status.status_type%TYPE; --change is required here 

BEGIN
   SELECT status_type 
   INTO this_type
   FROM status
   WHERE status_id LIKE curr_id;

   RETURN this_type;
END get_status;
/