Oracle資料庫基礎:程式中呼叫sqlplus的方式

liumiaocn發表於2019-01-27

透過sqlplus可以連線資料庫根據使用者許可權進行資料或者設定操作,但是需要互動操作並返回結果,這篇文章介紹一下如何在程式中使用sqlplus。

環境準備

使用Oracle的精簡版建立docker方式的demo環境。

Here Document

因為sqlplus是控制檯的方式與使用者進行互動式的輸入/輸出對應,而在程式執行的過程中顯然是需要預先定好的輸入,這樣可以考慮使用Here Document,比如希望透過sqlplus來確認資料庫版本資訊,則可以這樣

  1. # sqlplus system/liumiao123 <<EOF
  2. > select * from v\$version;
  3. > EOF
  4. SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 11:06:42 2018
  5. Copyright (c) 1982, 2011, Oracle. All rights reserved.
  6. Connected to:
  7. Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  8. SQL>
  9. BANNER
  10. --------------------------------------------------------------------------------
  11. Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  12. PL/SQL Release 11.2.0.2.0 - Production
  13. CORE 11.2.0.2.0 Production
  14. TNS for Linux: Version 11.2.0.2.0 - Production
  15. NLSRTL Version 11.2.0.2.0 - Production
  16. SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  17. #

注意:需要注意v$version中的$需要轉義

建立table

接下來使用Here Document的方式呼叫sqlplus來建立table

  1. # sqlplus system/liumiao123 <<EOF
  2. > create table student (
  3. > stuid number(4),
  4. > stuname varchar2(50),
  5. > primary key (stuid)
  6. > );
  7. > desc student;
  8. > EOF
  9. SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 11:11:52 2018
  10. Copyright (c) 1982, 2011, Oracle. All rights reserved.
  11. Connected to:
  12. Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  13. SQL> 2 3 4 5
  14. Table created.
  15. SQL> Name Null? Type
  16. ----------------------------------------- -------- ----------------------------
  17. STUID NOT NULL NUMBER(4)
  18. STUNAME VARCHAR2(50)
  19. SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  20. #

小結

sqlplus結合Here Document即可實現在程式中呼叫sqlplus。

總結

以上就是Oracle資料庫基礎:程式中呼叫sqlplus的方式的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值。

相關文章