Oracle 从具有无参数的存储过程中获取数据
我有一个没有参数的存储过程Oracle 从具有无参数的存储过程中获取数据,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,我有一个没有参数的存储过程proc1。我想从这个存储过程中提取数据。我怎么能得到这个?你能帮我吗 存储过程: create procedure proc1 as begin select e_id, e_nm, e_sal from emp where e_id like 'e%'; end proc1; 这里有一个可能的解决方案: 声明: create procedure proc1 (emp_row IN OUT emp%rowtype) as begin
proc1
。我想从这个存储过程中提取数据。我怎么能得到这个?你能帮我吗
存储过程:
create procedure proc1
as
begin
select e_id, e_nm, e_sal
from emp
where e_id like 'e%';
end proc1;
这里有一个可能的解决方案: 声明:
create procedure proc1 (emp_row IN OUT emp%rowtype)
as
begin
select * --e_id, e_nm, e_sal
into emp_row
from emp
where e_id like 'e%';
end proc1;
DECLARE
l_emp_row emp%rowtype;
BEGIN
proc1(l_emp_row);
-- Here you can access every column of table "emp", like so:
-- dbms_output.put_line('e_id: ' || to_char(l_emp_row.e_id));
-- dbms_output.put_line('e_nm: ' || to_char(l_emp_row.e_nm));
-- dbms_output.put_line('e_sal: ' || to_char(l_emp_row.e_sal));
END;
用例:
create procedure proc1 (emp_row IN OUT emp%rowtype)
as
begin
select * --e_id, e_nm, e_sal
into emp_row
from emp
where e_id like 'e%';
end proc1;
DECLARE
l_emp_row emp%rowtype;
BEGIN
proc1(l_emp_row);
-- Here you can access every column of table "emp", like so:
-- dbms_output.put_line('e_id: ' || to_char(l_emp_row.e_id));
-- dbms_output.put_line('e_nm: ' || to_char(l_emp_row.e_nm));
-- dbms_output.put_line('e_sal: ' || to_char(l_emp_row.e_sal));
END;
有什么特别的东西你需要从程序中得到吗
干杯
create procedure proc1
as
begin
insert into new_table select e_id, e_nm, e_sal from emp where e_id like 'e%';
end proc1;
例如,您可以在Oracle 12.1或更高版本中执行此操作:
create or replace procedure demo
as
rc sys_refcursor;
begin
open rc for select * from dual;
dbms_sql.return_result(rc);
end demo;
这需要Oracle 12.1或更高版本的客户端/驱动程序来处理隐式结果集
有关更多详细信息,请参阅中的隐式结果集等。您应该更具体一些-以获得一些答案。。。该程序的目的是什么?您是编写存储过程的人吗?您想提取什么样的数据?@Plirkee在这个过程中有一些SQL语句,但没有参数。我如何从这个存储过程中获取或提取数据,或者如何从具有参数的存储过程中获取数据如果您不在问题中发布您的过程代码,讨论这个问题将不会有任何结果。@Shahin发布代码并解释您想要提取什么(期望的输出)。。。否则,我怀疑你会得到任何有用的答案。如果没有参数,你无法从过程中获得数据。您可以将游标作为输出参数返回,也可以将一些标量值作为输出参数返回,但最后需要参数。看起来它有一个参数;)