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


 轉載:

   

示例
SQL>; select * from myuser;

        ID USERNAME   PASSWORD   SJ
---------- ---------- ---------- -------------------
         1 John       1234       2003-05-01 00:00:00
         2 Jack       12345      2003-05-02 00:00:00
         3 Rose       2345       2003-04-20 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

已選擇6行。

SQL>; select 8 from myuser where
  2  to_char(sj,'yyyy-mm-dd')='2003-05-01';//其中8 是輸錯的

         8
----------
         8
         8
         8
         8

方法一:

SQL>1;
SQL>c/8/*;
就可以了,你可以看看oracle的sqlplus介紹

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這個文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM