实现的方法和详细的操作步骤如下:
1、第一步,双击plsql图标进入登录界面,输入用户名和密码,然后传输数据库实例名称,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,单击左上角的“new”选项,然后单击“sql window”以进入数据库界面,如下图所示,然后进入下一步。
3、接着,该图是数据库存储过程的简单布局。
存在存储过程的定义,包括输入变量,输出变量等。输入变量由in定义,输出由out定义;可变部分:可以根据程序要求定义;数据处理逻辑部分:诸如添加,删除和修改差异表之类的操作;异常处理部分:处理程序异常执行时的处理。
如下图所示,然后进入下一步。
4、然后,完成上述步骤后,编写存储过程时,需要单击左上角的执行按钮或快捷键F8,然后可以在编译后调试程序。找到需要调试的存储过程,右键单击“test”,进入调试界面,如下图所示,然后进入下一步。
5、随后,完成上述步骤后,单击左上角的调试按钮,如下图所示,然后进入下一步。
6、最后,完成上述步骤后,下图中标记的区域是调试按钮,可以单步执行,跳过整个部分或跳出,如下图所示。这样,问题就解决了。
要成功执行这个存储过程,你需要注意几点:
1.select * from ods_area; 不能直接在pl/sql 中作为语句执行。
应该用 select 字段 into plsql变量 from 表名;
的形式来获取表中的数据,保存到plsql变量中。
2. 存储过程的语法格式为:
create or replace procedure area
is
--变量声明;
begin
--过程主体;
end area;
3. 如果存储过程代码无误,可以通过 "/" 来执行代码,编译存储过程。
4.通过exec 或 execute 来调用编译后的存储过程。
例如:
-- 创建procedure:
create or replace procedure area
is
num number ;
v_areaRecord dual%ROWTYPE;
begin
--例子1
select * into v_areaRecord from dual;
--例子2
select 12345 into num from dual;
end area;
/
-- 通过 / 执行;
--调用
exec area;
create or replace procedure job_table as
v_sql varchar2(2000);
begin
v_sql:='create table job_test2 as select * from job_test';
EXECUTE immediate v_sql;
EXCEPTION
WHEN OTHERS
THEN
rollback;
end job_table;
存储过程内不能直接使用create或alter,需要使用EXECUTE执行动态语句才可以
还有执行存储过程,必须在命令窗口内执行
贴一下错误提示,先编译通过再去执行。
OUT 参数需要设置一个变量接收返回值
执行:
declare
test sys_refcursor
begin
wyl_sp1(test);
dbms_output.put_line(test);
end;
请采纳。