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

时间:2015-10-25 12:58:59

标签: plsql oracle10g oracle-sqldeveloper procedure

我遇到有关扫描pl / sql过程中的值的问题。当我执行该过程时,它会忽略 a:='& a&# 39 ;;

程序正文

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 : 

请有人帮助我吗??

1 个答案:

答案 0 :(得分:2)

在SQL * Plus中,我们有提示和接受语法,但没有直接的方法可以在不使用PHP,Apex,Java,Scripting的情况下进行PL / SQL交互。我给你的脚本编写示例。

e.g。在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.