oracle 中用什么命令执行一个带参数的存储过程
发布网友
发布时间:2022-04-23 17:39
我来回答
共7个回答
热心网友
时间:2022-04-07 20:37
具体如下:
1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,修改存储过程。
此存储过程具有一个输入参数(pid)和一个输出参数,即通过用户id查询用户名并返回名称,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,调试存储过程,找到新创建的存储过程,右键单击[test]按钮,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,修改id值,然后单击左上角的“倒三角”按钮以开始调试,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,按[CTRL +
N]进行单步调试,按[CTRL + O]单步调试,按[CTRL + T]退出调试,或者单击调试工具进行调试,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,可以在窗口底部输入变量名称,以观察变量的变化,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,可以查看调试结果,见下图。这样,就解决了这个问题了。
热心网友
时间:2022-04-07 21:55
如果是命令行,比如SQLplus,可以使用exec procere_name(参数列表); 就可以执行这个存储过程
如果是SQL 窗口环境,可以直接使用一个匿名块执行
declare
变量声名.....
begin
procere_name(参数列表);
.........................
end;
热心网友
时间:2022-04-07 23:29
exec procere_name(params);行吗? 写在plsql块中,如果有返回值可以自己定义变量接收。
热心网友
时间:2022-04-08 01:21
在命令窗口下执行
execute proc_name('参数1','参数2')
热心网友
时间:2022-04-08 03:29
declare
vout varchar2(200);
begin
user.procere('v1','v2'.....'vn','vout');-- 用户名.过程名 v1..vn 为传入参数vout 为输出参数(如果有多个输出,则声明多个并)v1..vout的位子和过程中的参数一一对应)
commit;
end;
热心网友
时间:2022-04-08 05:53
如下:
1.
CREATE OR REPLACE PROCEDURE raise_salary
(id IN employees.employee_id%TYPE,
percent IN NUMBER)
IS
BEGIN
UPDATE employees
SET salary = salary * (1 + percent/100)
WHERE employee_id = id;
END raise_salary;
/
--在命令窗口执行
EXECUTE raise_salary(176,10);
2.
CREATE OR REPLACE PROCEDURE query_emp
(id IN employees.employee_id%TYPE,
name OUT employees.last_name%TYPE,
salary OUT employees.salary%TYPE) IS
BEGIN
SELECT last_name, salary INTO name, salary
FROM employees
WHERE employee_id = id;
END query_emp;
DECLARE
emp_name employees.last_name%TYPE;
emp_sal employees.salary%TYPE;
BEGIN
query_emp(171, emp_name, emp_sal); ...
END;
3.
SET SERVEROUTPUT ON
DECLARE
emp_name employees.last_name%TYPE;
emp_sal employees.salary%TYPE;
BEGIN
query_emp(171, emp_name, emp_sal);
DBMS_OUTPUT.PUT_LINE('Name: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_sal);
END;
VARIABLE nameVARCHAR2(25)
VARIABLE salNUMBER
EXECUTE query_emp(171, :name, :sal)
PRINT name sal
以上应该很全了,楼主可以尝试下哈。
热心网友
时间:2022-04-08 08:35
begin
-- Call the procere
sp_procere(p_a => :p_a,
p_b => :p_b);
end;