1. 程式人生 > >sqlplus中如果輸入的sql語句前面有一行寫錯了,怎麼返回修改?

sqlplus中如果輸入的sql語句前面有一行寫錯了,怎麼返回修改?

方法一:

change的語法:
c /old statement/new statement

方法二:

不管三七二十一,先執行(這樣就會寫入快取中),然後edit即可。
SQL>; edit//調出編輯器重新編輯
已寫入檔案 afiedt.buf

  1  select * from myuser where
  2* to_char(sj,'yyyy-mm-dd')='2003-05-01'
SQL>; /   //用“/”執行寫入快取中的剛編輯好的命令

        ID USERNAME   PASSWORD   SJ
---------- ---------- ---------- -------------------
         1 John       1234       2003-05-01 00:00:00
         4 Joe        384657     2003-05-01 12:36:24
         5 Tom        384655     2003-05-01 12:33:24
         6 Jordan     384455     2003-05-01 12:33:36

如果出現以下這種情況:

SQL> select table_names from user_tables;
select table_names from user_tables
          *
ERROR at line 1:
ORA-00904: "TABLE_NAMES": invalid identifier

SQL> edit
Wrote file afiedt.buf
38
則:

在UNIX下要設定編輯器
define _editor=vi
然後用命令edit就可以了,但是不能永久設定;
在 $ORACLE_HOME/sqlplus/admin/glogin.sql 設定即可永久設定

或者:

在sqlplus下執行
store set login.sql
存下當前的環境設定,
這樣以後執行sqlplus時就會自動讀取login.sql這個檔案