颠末过程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的办法的全体内容了,盼望本文的内容对大家的学习或许工作具有一定的参考学习价值。