如何在外壳脚本中执行plsql程序?

cwxwcias  于 2022-09-21  发布在  Unix
关注(0)|答案(1)|浏览(235)

因此,我在plsql中创建了一个过程,但我希望在shellscript中自动执行它。例如,如果我使用CSV文件插入表,则该过程将使用Unix外壳脚本自动运行。我使用的软件是Cygwin。

rekjcdws

rekjcdws1#

我在MS Windows上,不知道Unix,也从未使用过Cygwin,正如标签描述所说的那样,它是...
..。在MS Windows上运行的GNU和其他类似Unix的自由/开源软件工具的集合

如果我理解正确的话,你就会

  • 创建一个存储过程(它执行一些工作;我的只显示一条消息),
  • 调用存储过程的SQL(.sql)脚本,以及
  • MS DOS批处理(.bat)脚本,其任务是建立与数据库的连接并调用前面提到的.sql脚本

这是一个过程:

  1. SQL> create or replace procedure p_test is
  2. 2 begin
  3. 3 dbms_output.put_line('Hello!');
  4. 4 end;
  5. 5 /
  6. Procedure created.
  7. SQL>

.SQL脚本(其名称为run_proc.sql):

  1. set serveroutput on
  2. begin
  3. p_test;
  4. end;
  5. /
  6. exit;

MS DOS批处理(.bat)脚本;其名称为run_proc.bat

  1. sqlplus scott/tiger@pdb1 @run_proc.sql

测试很简单-在MS DOS提示符下,调用批处理脚本:

  1. c:temp>run_proc
  2. c:temp>sqlplus scott/tiger@pdb1 @run_proc.sql
  3. SQL*Plus: Release 21.0.0.0.0 - Production on Sun Sep 18 07:51:59 2022
  4. Version 21.3.0.0.0
  5. Copyright (c) 1982, 2021, Oracle. All rights reserved.
  6. Last Successful login time: Sat Sep 17 2022 17:43:08 +02:00
  7. Connected to:
  8. Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
  9. Version 21.3.0.0.0
  10. Hello!
  11. PL/SQL procedure successfully completed.
  12. Disconnected from Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
  13. Version 21.3.0.0.0
  14. c:temp>
展开查看全部

相关问题