Sql*plus技巧之SPOOL应用

来源: 作者: 2007-12-03 出处:pcdog.com

dos  oracle  oracle数据库  
上一页 1 2 3 4 下一页 

  4.如何从脚本文件中得到WINDOWS环境变量的值:

  在windos中:

Sql*plus技巧之SPOOL应用
spool c:\temp\%ORACLE_SID%.txt Sql*plus技巧之SPOOL应用 select * from dept; Sql*plus技巧之SPOOL应用 ... Sql*plus技巧之SPOOL应用 spool off

  在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt

  在UNIX中:

Sql*plus技巧之SPOOL应用spool c:\temp\ORACLE_SID.txt Sql*plus技巧之SPOOL应用 select * from dept; Sql*plus技巧之SPOOL应用 ... Sql*plus技巧之SPOOL应用 spool off

  在上面的例子中,通过ORACLE_SID的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt

  5.如何指定缺省的编辑脚本的目录

  在sql*plus中,可以用save命令,将上一条执行的sql语句保存到一个文件中,但是如何设置该文件的缺省目录呢?

  通过SQL> set editfile c:tempfile.sql 命令,可以设置其缺省目录为c:tmpe,缺省文件名为file.sql。

  6.如何除去表中相同的行

  找到相同的行:

Sql*plus技巧之SPOOL应用SELECT * FROM dept a Sql*plus技巧之SPOOL应用WHERE ROWID <> (SELECT MAX(ROWID) Sql*plus技巧之SPOOL应用 FROM dept b Sql*plus技巧之SPOOL应用 WHERE a.deptno = b.deptno Sql*plus技巧之SPOOL应用 AND a.dname = b.dname -- Make sure all columns are compared Sql*plus技巧之SPOOL应用 AND a.loc = b.loc);

  注释:

  如果只找deptno列相同的行,上面的查询可以改为:

Sql*plus技巧之SPOOL应用SELECT * FROM dept a Sql*plus技巧之SPOOL应用WHERE ROWID <> (SELECT MAX(ROWID) Sql*plus技巧之SPOOL应用 FROM dept b Sql*plus技巧之SPOOL应用 WHERE a.deptno = b.deptno)

  删除相同的行:

Sql*plus技巧之SPOOL应用DELETE FROM dept a Sql*plus技巧之SPOOL应用WHERE ROWID <> (SELECT MAX(ROWID Sql*plus技巧之SPOOL应用 FROM dept b Sql*plus技巧之SPOOL应用 WHERE a.deptno = b.deptno Sql*plus技巧之SPOOL应用 AND a.dname = b.dname -- Make sure all columns are compared Sql*plus技巧之SPOOL应用 AND a.loc = b.loc);

  注意:上面并不删除列值为null的行。

  7.如何向数据库中插入两个单引号(’’)

Sql*plus技巧之SPOOL应用Insert inot dept values(35,’aa’’’’bb’,’a’’b’);

  在插入时,用两个’表示一个’。

  8.如何设置sql*plus的搜寻路径,这样在用@命令时,就不用输入文件的全路径。

  设置SQLPATH环境变量。

  如:

Sql*plus技巧之SPOOL应用SQLPATH = C:\ORANT\DBS;C:\APPS\SCRIPTS;C:\MYSCRIPTS

更多内容请看PCdog.com--Office技巧专区专题
上一页 1 2 3 4 下一页 
上一篇:数据库应用程序常见T-SQL和PL/SQL
下一篇:深入浅出SQL教程之子查询语句