我想在SQL Developer上创建一个简单的Oracle存储过程,它将在执行简单的选择查询时返回一些记录。我不想传入任何参数,而只想将记录从过程返回到结果集中-〉一个合适的变量。
我一直在尝试使用以下语法:
create or replace PROCEDURE Getmarketdetails2(data OUT varchar2)
IS
BEGIN
SELECT *
into data
from dual;
END Getmarketdetails2;
但当我尝试执行以下exec语句时,它给了我一个错误--〉
Declare a Varchar2;
exec Getmarketdetails2(a);
**错误:**PLS-00103:当期望“其他内容”时遇到符号“文件结束”。
**原因:**通常是PL/SQL编译错误。
感谢如果有人可以帮助我走出这个长期悬而未决的情况!我已经尝试了足够的找到一个基本的指南,以创建一个简单的Oracle存储过程,并在SQL开发人员执行它,但他们都没有回答的一点!
5条答案
按热度按时间sqyvllje1#
您需要:
或:
bd1hkmkf2#
假设是最新的Oracle版本,您可以使用
dbms_sql.return_result()
那就跑吧
唯一的缺点是SQLDeveloper只将结果显示为文本,而不是正确的结果网格。
7vux5j2d3#
这是我在Oracle中返回游标的方式
vktxenjb4#
你的程序没问题;使用下面的查询来运行sp,而不是上面的查询:
dfddblmv5#
请尝试此执行一个接一个的声明是工作在我的结束。
创建或替换过程sp_test(c1 out SYS_REFCURSOR)
作为
开始
打开c1
从用户详细信息中选择 *;
end sp_test;
/
将服务器输出设置为ON;
变量mycursor;
exec sp_test(:mycursor);
print mycursor;
输出:
用户ID用户名