所以我在plsql中创建了一个过程,但我想在shell脚本中自动执行它。就像如果我使用csv文件插入一个表,那么该过程将使用unix shell脚本自动运行。我正在使用的软件是cygwin。
我在MS Windows上,不懂Unix,也从未使用过Cygwin,正如标签描述所说,它是。。。
。。。在MS Window 上运行的GNU和其他类似Unix的FOSS工具的集合
如果我理解正确,你会选择
- 创建一个存储过程(它做一些工作;我的只是显示一条消息(
- 调用存储过程的SQL(.SQL(脚本,以及
- MS-DOS批处理(.bat(脚本,其任务是建立与数据库的连接并调用前面提到的.sql脚本
这是一个过程:
SQL> create or replace procedure p_test is
2 begin
3 dbms_output.put_line('Hello!');
4 end;
5 /
Procedure created.
SQL>
.SQL脚本(名称为run_proc.sql
(:
set serveroutput on
begin
p_test;
end;
/
exit;
MS-DOS批处理(.bat(脚本;它的名字是run_proc.bat
:
sqlplus scott/tiger@pdb1 @run_proc.sql
测试很简单-在MS-DOS提示符下,调用批处理脚本:
c:temp>run_proc
c:temp>sqlplus scott/tiger@pdb1 @run_proc.sql
SQL*Plus: Release 21.0.0.0.0 - Production on Sun Sep 18 07:51:59 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Last Successful login time: Sat Sep 17 2022 17:43:08 +02:00
Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
Hello!
PL/SQL procedure successfully completed.
Disconnected from Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
c:temp>