这种过程想要看到输出值一般来说是用dbms_output包中的put_line来做的,在serverout 开启的情况下,这个会包中的函数会将查询的结果什么的,直接打印在屏幕上。
创新互联公司主要从事成都网站制作、网站设计、外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务永顺,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
其他时间的查询结果只会在后台作为了一个过程量存在(这里查询语句中显示的1,就是一个过程量,当过程执行完,或者这个1传递完,那么这个1也就消失了),除非你将查询结果插入一张表内,这样的话你就能看见存储在那张插入表内的结果了,一般来说过程中的量是不会直接输出到屏幕上的。(如果是自定义函数有返回值,那么肯定是可以输出到屏幕上的)
当然还有一种情况能看到查询结果,那就是调试,调试过程的时候(其实就是一步一步的执行过程,有些工具是一行一行的),用工具能看到每一步的结果。
oracle变量赋值及打印需要用存储过程实现。
如:
declare
v_begintime varchar2(20);
v_endtime varchar2(20);
v_str varchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
select 'badkano' into v_str from dual;--为v_str变量赋值
v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
dbms_output.put_line(v_str||'执行存储过程开始时间为:'||v_begintime);--打印
dbms_output.put_line(v_str||'执行存储过程结束时间为:'||v_endtime);--打印
end;
执行结果:
存储过程直接打印Create or replace procedure Sel is AA date;beginSelect sysdate into AA from dual;dbms_output.put_line(AA);end;变量返回Create or replace procedure Sel (AA out date)isbeginSelect sysdate into AA from dual;end;/set serverout on declare v_aa date; begin sel (v_aa); dbms_output.put_line(v_aa); end;
首先在sqlplus中set serverout on 以打开显示至于输出,可以用dbms_output若在sqlplus中还可以用print
SQL*PLUS貌似是不能打印出表格的,不过可以给你推荐一款非常不错的oracle第三方软件PLSQL Developer,这款软件比oracle自带的sql*plus要好用许多,而且功能更强大。网上可以下载,而且注册码啥的也好搜,如果搜不到我可以发给你
可用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存储过程
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款