每次显示 oracle 输出时附加变量
Append variable everytime while displaying oracle output
我有以下 mysql.sql sql 脚本。我想每次使用 sql 结果的每个语句打印 dbname。
我该怎么做?
我还想在脚本中添加错误处理。
mysql.sql
set colsep ',';
set trimout off;
set pagesize 0;
set trimspool off;
set feedback off;
set heading on;
spool C:sql_data\res_pre.csv app
var ename varchar2(20)
exec :dbname := '&1'
print :dbname
select '&dbname',user_name, user_id from employee where designation = 'manager';
spool off
exit;
当前输出为:
db1
abc 123
xyz 231
db2
efg 143
rst 234
我想要输出如下:
db1 abc 123
db1 xyz 231
db2 efg 143
db2 rst 234
var ename varchar2(20)
exec :dbname := '&1'
print :dbname
我想这与您的有关。如果您再次在 SELECT 语句中将其用作 替换变量[,则无需 定义绑定变量、分配和打印值 =31=].
这样做:
SQL> set colsep ',';
SQL> set trimout off;
SQL> set pagesize 0;
SQL> set trimspool off;
SQL> set feedback off;
SQL> set heading on;
SQL> var dbname varchar2(20)
SQL> select '&dbname',ename, empno from emp where deptno = 10;
Enter value for dbname: db1
old 1: select '&dbname',ename, empno from emp where deptno = 10
new 1: select 'db1',ename, empno from emp where deptno = 10
db1,CLARK , 7782
db1,KING , 7839
db1,MILLER , 7934
SQL>
要抑制替换变量验证输出,需要SET VERIFY OFF
例如,
SQL> SET VERIFY OFF
SQL> select '&dbname',ename, empno from emp where deptno = 10;
Enter value for dbname: db1
db1,CLARK , 7782
db1,KING , 7839
db1,MILLER , 7934
SQL>
更新 错误记录
您可以使用新的 SQL*Plus 错误记录功能。我写了一篇文章,看看吧http://lalitkumarb.wordpress.com/2014/01/21/sqlplus-error-logging-new-feature-release-11-1/
我有以下 mysql.sql sql 脚本。我想每次使用 sql 结果的每个语句打印 dbname。
我该怎么做?
我还想在脚本中添加错误处理。
mysql.sql
set colsep ',';
set trimout off;
set pagesize 0;
set trimspool off;
set feedback off;
set heading on;
spool C:sql_data\res_pre.csv app
var ename varchar2(20)
exec :dbname := '&1'
print :dbname
select '&dbname',user_name, user_id from employee where designation = 'manager';
spool off
exit;
当前输出为:
db1
abc 123
xyz 231
db2
efg 143
rst 234
我想要输出如下:
db1 abc 123
db1 xyz 231
db2 efg 143
db2 rst 234
var ename varchar2(20)
exec :dbname := '&1'
print :dbname
我想这与您的
这样做:
SQL> set colsep ',';
SQL> set trimout off;
SQL> set pagesize 0;
SQL> set trimspool off;
SQL> set feedback off;
SQL> set heading on;
SQL> var dbname varchar2(20)
SQL> select '&dbname',ename, empno from emp where deptno = 10;
Enter value for dbname: db1
old 1: select '&dbname',ename, empno from emp where deptno = 10
new 1: select 'db1',ename, empno from emp where deptno = 10
db1,CLARK , 7782
db1,KING , 7839
db1,MILLER , 7934
SQL>
要抑制替换变量验证输出,需要SET VERIFY OFF
例如,
SQL> SET VERIFY OFF
SQL> select '&dbname',ename, empno from emp where deptno = 10;
Enter value for dbname: db1
db1,CLARK , 7782
db1,KING , 7839
db1,MILLER , 7934
SQL>
更新 错误记录
您可以使用新的 SQL*Plus 错误记录功能。我写了一篇文章,看看吧http://lalitkumarb.wordpress.com/2014/01/21/sqlplus-error-logging-new-feature-release-11-1/