在创建存储过程的时候,我本想在存储过程添加一些提示语句,例如提示用户输入什么啊,举例如下:create or replace procedure pro_temp is
begin
set serveroutput on;
dbms_output.put_line('请用户输入:……');
end pro_temp;编译的时候,出现下面的错误:PROCEDURE QIUYUE.PRO_TEMP 编译错误
错误:PL/SQL: ORA-00922: 选项缺失或无效
行:3
文本:set serveroutput on;错误:PL/SQL: SQL Statement ignored
行:3
文本:set serveroutput on;之所以想通过“set serveroutput on”打开服务器输出,是为了避免忘记在命令行窗口打开,所以才想在存储过程中添加,不知道怎么弄,求教,谢谢!
不知道这个问题有没有用,谢谢!
begin
set serveroutput on;
dbms_output.put_line('请用户输入:……');
end pro_temp;编译的时候,出现下面的错误:PROCEDURE QIUYUE.PRO_TEMP 编译错误
错误:PL/SQL: ORA-00922: 选项缺失或无效
行:3
文本:set serveroutput on;错误:PL/SQL: SQL Statement ignored
行:3
文本:set serveroutput on;之所以想通过“set serveroutput on”打开服务器输出,是为了避免忘记在命令行窗口打开,所以才想在存储过程中添加,不知道怎么弄,求教,谢谢!
不知道这个问题有没有用,谢谢!
create or replace procedure pro_temp is
begin
set serveroutput on;
dbms_output.put_line('请用户输入:……');
end pro_temp;
begin
dbms_output.put_line('请用户输入:……');
end pro_temp;
如果你怕忘记打开或者嫌麻烦,可以把 set serveroutput on 写在
D:\oracle\product\10.2.0\db_1\sqlplus\admin\glogin.sql 中,因为sqlplus打开的时候会自动加载这个文件。
C:\Users\thinkpad-zph>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期日 8月 12 14:47:53 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options[SYS@myoracle] SQL>
但是你那个自动显示登录用户和数据库名的方式,我还 不知道怎么弄的呢?求教!
set sqlprompt "'['_USER'@'_CONNECT_IDENTIFIER'] SQL>'"
_user> set sqlprompt '_user'; --使用单引号不可以
_user> set sqlprompt _user; --不适用符号也不可以
_user> 我想,使用上面的几种方式应该可以测试你给我说的方法吧?但是怎么不可以呢?求教,谢谢!麻烦了!
SQL>set sqlprompt "'['_USER'@'_CONNECT_IDENTIFIER'] SQL>'"
[SYS@myoracle] SQL>
[SYS@myoracle] SQL>set sqlprompt "_USER"
SYS
SYS/
DEFINE _USER = "QIUYUE" (CHAR)但是,当我直接复制你给我说的东西的时候,却发现,直接显示的是字符串"_user",这到底是怎么回事啊?
后来跑到SQL/Plus上才发现可以,晕!难道说“set sqlprompt”在SQL/Plus和PL/SQL中并不完全一样?
恩,,一般不推荐这个,,可以用sys自带的utl_file 来写LOG文件来完成。。如果仅仅是私下调试的话 dbms_output 还是比较方便的