oracle存储过程如何输出信息
问题1:比如说:我select一条记录,但是这条记录为空,则存储过程会抛异常。我是在别处调用的存储过程,但是我只能得存储过程的返回码100,并不知道是那一条select语...
问题1:
比如说:
我select一条记录,但是这条记录为空,则存储过程会抛异常。我是在别处调用的存储过程,但是我只能得存储过程的返回码100,并不知道是那一条select语句造成抛出异常。请问这里要如何编程?
问题2:
在网上看到 dbms_output.PUT_LINE(name);
这个PUT_LINE 是把信息输出到哪里了? 展开
比如说:
我select一条记录,但是这条记录为空,则存储过程会抛异常。我是在别处调用的存储过程,但是我只能得存储过程的返回码100,并不知道是那一条select语句造成抛出异常。请问这里要如何编程?
问题2:
在网上看到 dbms_output.PUT_LINE(name);
这个PUT_LINE 是把信息输出到哪里了? 展开
6个回答
展开全部
可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。
编写存储过程:
create or replace procedure test_pro(in_num number)
as
M number;
begin
M := in_num;
if 0 < M then
dbms_output.put_line('输出SQL语句1');
elsif M < 3 then
dbms_output.put_line('输出SQL语句2');
else
dbms_output.put_line('nothing');
end if;
end;
扩展资料;
存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等。
参考资料来源:百度百科-Oracle存储过程
展开全部
oracle存储过程如何输出信息?可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。
编写存储过程:
create or replace procedure test_pro(in_num number)
as
M number;
begin
M := in_num;
if 0< M then
dbms_output.put_line('输出SQL语句1');
elsif M< 3 then
dbms_output.put_line('输出SQL语句2');
else
dbms_output.put_line('nothing');
end if;
end;
扩展资料;
存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等。
编写存储过程:
create or replace procedure test_pro(in_num number)
as
M number;
begin
M := in_num;
if 0< M then
dbms_output.put_line('输出SQL语句1');
elsif M< 3 then
dbms_output.put_line('输出SQL语句2');
else
dbms_output.put_line('nothing');
end if;
end;
扩展资料;
存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是使用PL/sql工具,在command 窗口下执行set serveroutput on
然后exec sp;
可以看到了
或者在sqlplus 中执行上面的代码
然后exec sp;
可以看到了
或者在sqlplus 中执行上面的代码
追问
我是使用的PL/sql工具。
如果我是proC,调用的这个存储过程,能获得put_line 的输出 吗?
追答
proC没有玩过,可以给我点资料看看吗?yxd2766@126.com
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
概述
前面已经对存储过程、函数、包做了个介绍,但是毕竟是写成了一篇,所以没那么细,今天单独介绍一下存储过程基础方面,后面再说遍历什么游标啊,数组啊~
1、语法
CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ]IS [declaration_section]BEGIN executable_section[EXCEPTION exception_section]END [procedure_name];
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
这里做个简单了解就行,主要还是通过实例来理解。
2、环境准备
准备测试数据
create table students( ID int, userName varchar(100), userPass varchar(100), userAge int)insert into students values(1,'jack','jjjaa',23);insert into students values(2,'rose','jjjaa',21);insert into students values(3,'lucy','jjjaa',22);insert into students values(4,'Tony','jjjaa',24);commit;

对于某个用户添加年龄
create or replace procedure SP_Update_Age( uName in varchar, Age in int)asbegin update students set UserAge = UserAge + Age where userName = uName; commit;end SP_Update_Age;
执行如下:exec SP_UPDATE_AGE('jack',1);
结果:

IF判断

调用:
set serveroutput on; --没这句话,看不到dmbs_output信息。declare num number;begin num:= -1; test(num); dbms_output.put_line( 'num = ' || num );end;
输出:

For循环、

输出:

While 循环

调用:

输出:

篇幅有限,关于存储过程基础部分就介绍到这了,大家有空可以测试一下,这里有些不放代码是因为大家如果真想练习的话最好是手敲好一点,加深印象。
后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!
前面已经对存储过程、函数、包做了个介绍,但是毕竟是写成了一篇,所以没那么细,今天单独介绍一下存储过程基础方面,后面再说遍历什么游标啊,数组啊~
1、语法
CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ]IS [declaration_section]BEGIN executable_section[EXCEPTION exception_section]END [procedure_name];
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
这里做个简单了解就行,主要还是通过实例来理解。
2、环境准备
准备测试数据
create table students( ID int, userName varchar(100), userPass varchar(100), userAge int)insert into students values(1,'jack','jjjaa',23);insert into students values(2,'rose','jjjaa',21);insert into students values(3,'lucy','jjjaa',22);insert into students values(4,'Tony','jjjaa',24);commit;

对于某个用户添加年龄
create or replace procedure SP_Update_Age( uName in varchar, Age in int)asbegin update students set UserAge = UserAge + Age where userName = uName; commit;end SP_Update_Age;
执行如下:exec SP_UPDATE_AGE('jack',1);
结果:

IF判断

调用:
set serveroutput on; --没这句话,看不到dmbs_output信息。declare num number;begin num:= -1; test(num); dbms_output.put_line( 'num = ' || num );end;
输出:

For循环、

输出:

While 循环

调用:

输出:

篇幅有限,关于存储过程基础部分就介绍到这了,大家有空可以测试一下,这里有些不放代码是因为大家如果真想练习的话最好是手敲好一点,加深印象。
后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dbms_output.put_line
例如:
SQL> set serveroutput on
SQL> BEGIN
2 dbms_output.put_line('Hello World');
3 END;
4 /
Hello World
PL/SQL procedure successfully completed.
例如:
SQL> set serveroutput on
SQL> BEGIN
2 dbms_output.put_line('Hello World');
3 END;
4 /
Hello World
PL/SQL procedure successfully completed.
追问
你那个是sqlplus命令行吗?
helloworld 输出到了终端??
我这边是程序调用这个存储过程,能获得put_line输出的信息吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询