Oracle 中输出语句 可以执行编译,没有报错,但是输出看不到,显示匿名块以完成。

活在当下kong 2014-05-23 02:17:00
这是我的代码!里面有输出语句,但是不能输出,显示匿名块完成,我用的Oracle 11g






create or REPLACE procedure test_pro (eno number,tipinfo in out varchar2) --如果过程中没有对参数指定类型,默认是in
as
empsal number (5,0) default 0; --保存工资
begin
DBMS_OUTPUT.PUT_LINE(tipinfo); --作为输入参数,取出其中的值
select sal into empsal from emp where empno=eno;
tipinfo:='工资是:'||empsal;--被赋值是因为该变量是一个输出参数 out 也可以是输入参数 in
end;

--调用函数同常使用select 语句,调用过程使用call 语句
/*
带输出参数的存储过程必须通过PL/SQL 块来进行调用,
原因是输出参数必须在declare的声明中定义
*/



declare
tip varchar2 (100) default 'Hello World';
begin
TEST_PRO (7788,tip);
DBMS_OUTPUT.PUT_LINE(tip); --打印出在过程中被改变后的值
end;

...全文
1194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-江沐风- 2014-05-23
  • 打赏
  • 举报
回复
写在最上面就行,是为了处理打印那行代码;
活在当下kong 2014-05-23
  • 打赏
  • 举报
回复
引用 3 楼 wildwave 的回复:
这应该用的是sql developer吧 set serverout on试试
用在哪里?怎么写?我用scott 登录 然后 直接写了一行 set serverout on 编译结果:行 38: 跳过了 SQLPLUS 命令: set serverout on 什么意思?然后又执行了一遍代码,还是显示匿名块已完成
小灰狼W 2014-05-23
  • 打赏
  • 举报
回复
这应该用的是sql developer吧 set serverout on试试
CT_LXL 2014-05-23
  • 打赏
  • 举报
回复
引用 楼主 u012173936 的回复:
这是我的代码!里面有输出语句,但是不能输出,显示匿名块完成,我用的Oracle 11g create or REPLACE procedure test_pro (eno number,tipinfo in out varchar2) --如果过程中没有对参数指定类型,默认是in as empsal number (5,0) default 0; --保存工资 begin DBMS_OUTPUT.PUT_LINE(tipinfo); --作为输入参数,取出其中的值 select sal into empsal from emp where empno=eno; tipinfo:='工资是:'||empsal;--被赋值是因为该变量是一个输出参数 out 也可以是输入参数 in end; --调用函数同常使用select 语句,调用过程使用call 语句 /* 带输出参数的存储过程必须通过PL/SQL 块来进行调用, 原因是输出参数必须在declare的声明中定义 */ declare tip varchar2 (100) default 'Hello World'; begin TEST_PRO (7788,tip); DBMS_OUTPUT.PUT_LINE(tip); --打印出在过程中被改变后的值 end;
set serveroutput on
CT_LXL 2014-05-23
  • 打赏
  • 举报
回复
引用 楼主 u012173936 的回复:
这是我的代码!里面有输出语句,但是不能输出,显示匿名块完成,我用的Oracle 11g create or REPLACE procedure test_pro (eno number,tipinfo in out varchar2) --如果过程中没有对参数指定类型,默认是in as empsal number (5,0) default 0; --保存工资 begin DBMS_OUTPUT.PUT_LINE(tipinfo); --作为输入参数,取出其中的值 select sal into empsal from emp where empno=eno; tipinfo:='工资是:'||empsal;--被赋值是因为该变量是一个输出参数 out 也可以是输入参数 in end; --调用函数同常使用select 语句,调用过程使用call 语句 /* 带输出参数的存储过程必须通过PL/SQL 块来进行调用, 原因是输出参数必须在declare的声明中定义 */ declare tip varchar2 (100) default 'Hello World'; begin TEST_PRO (7788,tip); DBMS_OUTPUT.PUT_LINE(tip); --打印出在过程中被改变后的值 end;
serveroutput on

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧