1. plsql中在包体中怎么写存储过程,要求有完整的代码,以及如何在控制台调用过程
定义包头
create or replace package love_xt
is
procere query_c(a number,b number);
end love_xt;
/
定义包体
create or replace package body love_xt
is
procere query_c(a number,b number)
is
myxt number;
begin
myxt:=a*b;
dbms_output.put_line(myxt);
end query_c;
end love_xt;
/
控制台调用:
set serveroutput on;
exec love_xt.query_c(12,6);
/
实现通过包来调用过程输出输入两个数(12,6)(参数自己随意换)的乘积,此结果为72
2. oracle的plsql块,存储过程,函数怎么写增删改查
首先在PL/SQL的左侧资源栏中展开Proceres项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过。
找到想要调试的存过,左键单击选中该存过(图中位置1),然后右键单击该存过,从弹出菜单中选择“Test”项(图中位置2)。
单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参数即可。
填写完参数,单击开始调试按钮后,调试的界面会发生一些变化。图中位置1的变化,说明存过已经处于执行状态,别人不能再编译或者执行。位置2的按钮就是执行按钮,单击这个按钮存过会执行完成或者遇到bug跳出,否则是不会停下来的,调试时不会用这个按钮的。位置3的按钮才是关键——单步执行,就是让代码一行一行的执行,位置4的按钮是跳出单步执行,等待下一个指令。
单击“单步执行”,存过开始单步执行。界面中每一次执行的代码会高亮显示(图中位置1),如果想要看某个变量具体的值,就在位置2的地方输入该变量名,然后变量的值会显示在位置3的地方。
调试的时候,每一次单步执行的时候要记一下执行代码的行数,图中位置3的数字就是当前执行代码的行数,就是第几行。如果过程单步执行到某行后,再单步执行的时候,存过就退出,那么错误就在该行的下一行。
代码执行到24行,在往下执行时,直接转到exception的地方,也就是异常处理的部分。
这说明我们代码中的错误在24和25行上,我们打开存过,浏览到24行和25行附近,发现25行和24行使用了两个变量,记住那两个变量。重新开始调试过程。
单步的执行时候把刚才那两个变量名填写到变量查看框,一边观察变量值变化,一边单步执行,执行到24行的时候,发现一个变量已经有值了,而另一个变量的值为null。错误原因明朗了吧?就是变量没有赋值或者初始话,给该变量赋值后存过就不报错了。
3. 在plsql里 如何在包里写存储过程 如何调用 有简单例子最好 谢谢
一样的,等于在package里建一个存储过程,这个存储过程中有很多个小函数,然后你想调用哪个就调用哪个啊,举个例子,
在package里建一个存储过程js_common
CREATE OR REPLACE PACKAGE BODY JS_COMMON
在这个存储过程里建小函数,如
procere other_com is
end;
在其他存储过程中调用这个的话,就是
js_common.other_com()
括号里填入参。
4. PLSQL数据库联合查询双表存储过程怎么写
ta{id, name,classid}
tb{id,classname}
想要得到 {id,name,classname}
其sql语句为:
select ta.id,ta.name,tb,classname
from ta, tb
where ta.classid=tb.id;
5. PLSQL的存储过程
asstrvarchar2(100);
begin
str:='(idVARCHAR2(10),workingHoursNUMBER)ONCOMMITPRESERVEROWS';
executeimmediatestr;
insertintotempTable(selectid,workingHoursfromt_employee);
foriin(select*fromtempTable)loop
IFworkingHours>5THEN
Updatet_employeeSetsalary=salary+2000
Whereid=i.id;
ElsifworkingHours>3then
Updatet_employeeSetsalary=salary+1000
Whereid=i.id;
Else
DBMS_OUTPUT.PUT_LINE('你工作时间不够涨薪');
Endif;
endloop;
Commit;
end;
6. plsql中怎么调用带输出参数的存储过程
1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。
7. plsql developer 里怎么写存储过程,和执行存储过程,怎么查看存储过程和出现什么情况算成功执行存储过程
--建立测试数据:
create table BOOK(编号 number(10),书名 varchar2(20),价格 varchar2(20))
insert into BOOK values(100,'aa','88.77')
select * from BOOK
--建立存储过程:
create or replace procere query_BOOK(name IN OUT NUMBER,MY_BOOK OUT VARCHAR2,MY_BOOK2 OUT VARCHAR2) is
begin
select 编号 ,书名,价格 INTO name,MY_BOOK,MY_BOOK2 from BOOK where 编号=name;
end query_BOOK;
--调用存储过程:
declare v_name number(10);
v_my_book varchar2(50);
v_my_book2 varchar2(20);
begin
v_name := 100;
query_BOOK(v_name,v_my_book,v_my_book2); --调用存储过程
dbms_output.put_line('v_name is: '||v_name);
dbms_output.put_line('v_my_book is: '||v_my_book);
dbms_output.put_line('v_my_book2 is: '||v_my_book2);
exception
when others then
dbms_output.put_line(sqlerrm);
end;
ps:
plsql developer -->File-->new--->SQL window-->然后就可以在弹出的空白窗口里写了.
存储过程写完后,是否有错,可以看plsql developer 的左边列表:
选"My objects"-->proceres-->展开-->看你对应的存储过程,如果存储过程前面有红色交叉,则表示存储过程有错.
8. plsql中如何执行存储过程
实现的方法和详细的操作步骤如下:
1、第一步,双击plsql图标进入登录界面,输入用户名和密码,然后传输数据库实例名称,如下图所示,然后进入下一步。
9. 如何在plsql中执行存储过程
create or replace procere job_table asv_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执行动态语句才可以 还有执行存储过程,必须在命令窗口内执行