如何读取 pl/sql 过程中的值?

How read a value in pl/sql procedure?

我在 扫描 pl/sql 过程中的值时遇到问题。 当我执行该过程时,它忽略了 a: ='&a';.

程序正文

create or replace PROCEDURE Testing
IS
a VARCHAR2(3);
BEGIN
  DBMS_OUTPUT.PUT_LINE('Enter a : ');
  a:='&a';
END Testing;

过程调用

SET SERVEROUTPUT ON;
cl scr;
Execute Testing;

输出

PL/SQL procedure successfully completed.

Enter a : 

有人能帮帮我吗?

在 SQL*Plus 我们有提示和接受语法,但是没有直接的方法让 PL/SQL 交互而不使用 PHP、Apex、Java , 脚本。我正在给你编写脚本的例子。

例如在 Windows 批处理中,以下代码会有所帮助。

1) 测试程序的代码与您拥有的相同

create or replace PROCEDURE  Testing (arg varchar2)
IS
a VARCHAR2(3);
BEGIN
a:=arg;
  DBMS_OUTPUT.PUT_LINE('Value of a : '||a);

END

2) test.bat

sqlplus nd211/nd211 @Testing.sql te1
sqlplus nd211/nd211 @Testing.sql te4

3) Testing.sql

set serveroutput on
exec Testing('&1');
exit;

测试; /

4) 示例输出

Value of a : te1

PL/SQL procedure successfully completed.


Value of a : te4

PL/SQL procedure successfully completed.