Oracle 如何在弹出窗口中执行和获取光标输入?
我想在oracle sql developer中创建一个Oracle 如何在弹出窗口中执行和获取光标输入?,oracle,plsql,oracle-sqldeveloper,Oracle,Plsql,Oracle Sqldeveloper,我想在oracle sql developer中创建一个cusrsor,其中根据输入弹出窗口salaryamount显示员工报告 我已经创建了游标,但我不知道如何运行这个游标,以及如何使用用户弹出窗口获取输入 declare cursor c_emp is select FIRST_NAME,SALARY,DEPARTMENT_ID from EMPLOYEES where SALARY>=10000; v_name EMPLOYEES.FIRST_NAME%type; v_sal EM
cusrsor
,其中根据输入弹出窗口salary
amount显示员工报告
我已经创建了游标,但我不知道如何运行这个游标,以及如何使用用户弹出窗口获取输入
declare
cursor c_emp is
select FIRST_NAME,SALARY,DEPARTMENT_ID from EMPLOYEES where
SALARY>=10000;
v_name EMPLOYEES.FIRST_NAME%type;
v_sal EMPLOYEES.SALARY%type;
v_deptno EMPLOYEES.DEPARTMENT_ID%type;
begin
open c_emp;
loop
fetch c_emp into v_name, v_sal, v_deptno;
exit when c_emp%NOTFOUND;
dbms_output.put_line(v_name||' '||v_sal||' '||v_deptno);
end loop;
close c_emp;
end;
如何执行
光标
并在弹出窗口中从用户处获取工资输入?它将显示每个员工报告。SQL Developer支持许多(但不是全部)古老的SQL*Plus命令集。支持的集合包括用于标识替换变量的&
语法。替换变量是一个占位符,当用户运行代码时,它会提示用户输入
因此,您需要做的是编辑代码以使用以下内容:
declare
cursor c_emp is
select FIRST_NAME,SALARY,DEPARTMENT_ID
from EMPLOYEES
where SALARY >= &min_salary; -- substitution variable
v_name EMPLOYEES.FIRST_NAME%type;
v_sal EMPLOYEES.SALARY%type;
v_deptno EMPLOYEES.DEPARTMENT_ID%type;
begin
open c_emp;
loop
fetch c_emp into v_name, v_sal, v_deptno;
exit when c_emp%NOTFOUND;
dbms_output.put_line(v_name||' '||v_sal||' '||v_deptno);
end loop;
close c_emp;
end;
这将提示用户在运行此程序时输入minu salary
。在OracleSQLDeveloper中,您可以像运行任何其他语句一样运行此代码—ctrl+enter或单击菜单栏上的绿色箭头
替换变量是占位符:它们不存储在可寻址空间中。如果出于任何原因需要执行此操作,则需要显式定义变量并为其分配替换变量:
l_min_salary number := &min_salary;
然后需要更改代码的其余部分以使用该变量。也许是这样:
declare
cursor c_emp (p_min_sal number) is
select FIRST_NAME,SALARY,DEPARTMENT_ID
from EMPLOYEES
where SALARY >= p_min_sal;
l_min_salary number := &min_salary;-- substitution variable
v_name EMPLOYEES.FIRST_NAME%type;
v_sal EMPLOYEES.SALARY%type;
v_deptno EMPLOYEES.DEPARTMENT_ID%type;
begin
open c_emp (l_min_salary);
loop
fetch c_emp into v_name, v_sal, v_deptno;
exit when c_emp%NOTFOUND;
dbms_output.put_line(v_name||' '||v_sal||' '||v_deptno);
end loop;
close c_emp;
end;
plsql和oracle sqldeveloper都是相同的,我使用的是oracle sqldeveloper软件,根据google
PL/SQL是oracle公司对SQL和oracle关系数据库的过程扩展,oracle sqldeveloper是我使用的软件是。但是PL/SQLDeveloper是一个由第三方供应商Allround Automations编写的工具,用于帮助开发人员编写PL/SQL。我之所以强调这一点,是因为有关用户交互的问题在很大程度上取决于用户使用的工具。正确标记的问题会导致更及时的答案。在本例中,您要查找的标记是通用的[plsql]
。感谢您回答@APC,但是min\u salary
存储在哪个变量中,并告诉我如何在oracle sql developer
软件中执行此光标???