还有在sql*puls 工作单中怎么清掉下面显示的错误信息?

解决方案 »

  1.   

    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"  AS
    DECLARE
    v_UserID VARCHAR2(10);
      v_PWD VARCHAR2(128);
    BEGIN
      v_Temp VARCHAR2(128);
      SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;为什么这样还是不对。
      

  2.   

    把declare去掉,declare是在sqlplus中调用pl/sql块时才能用到,在存储过程中声明一个变量不需要用到declare字句
      

  3.   

    TO:Singtoyou(我爱Oracle) 
    我改成这样还是不可以。
    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"  AS
      v_UserID VARCHAR2(10);
      v_PWD VARCHAR2(128);
    BEGIN
      v_Temp VARCHAR2(128);
      SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;BEGIN HRM_TEST 'A','A'; END;               *
    ERROR 位于第 1 行:
    ORA-06550: 第 1 行, 第 16 列:
    PLS-00103: 出现符号 "A"在需要下列之一时:
    :=.(@%;
      

  4.   

    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"  AS
      v_UserID VARCHAR2(10);
      v_PWD VARCHAR2(128);
      v_sql varchar2(30000);
    BEGIN
      v_Temp VARCHAR2(128);
     v_sql := 'SELECT '|| USER_PWD ' INTO ' || v_Temp || 'FROM HRM_USER WHERE USER_ID=' || v_UserID;
      execute immediate (v_sql); // 如不对,将execute immediate两个词调顺序
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;
      

  5.   

    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"(v_UserID in varchar2,v_PWD out varchar2)  AS
      v_Temp VARCHAR2(128);
    BEGIN
      SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;
      

  6.   

    你是要传入两个参数吧,这样
    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"(v_UserID HRM_USER.user_id%type,v_PWD HRM_USER.user_pwd%type)  
    is
    v_Temp HRM_USER.user_pwd%type;
    BEGIN
    SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;
    execute HRM_TEST('a','a');
      

  7.   

    你是要传入两个参数吧,这样
    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"(v_UserID HRM_USER.user_id%type,v_PWD HRM_USER.user_pwd%type)  
    is
    v_Temp HRM_USER.user_pwd%type;
    BEGIN
    SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;
    execute HRM_TEST('a','a');
      

  8.   

    我用Plsql Developer 调试结果发现错误出现在
    v_Temp VARCHAR2(128);
    我把他去掉就可以了.
    我不知道为什么这样?
      

  9.   

    这样就行了!变量定义不能在begin里面。
    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"  AS
      v_UserID VARCHAR2(10);
      v_PWD VARCHAR2(128);
      v_Temp VARCHAR2(128);
    BEGIN
      SELECT USER_PWD INTO v_Temp FROM HRM_USER WHERE USER_ID=v_UserID;
      DBMS_OUTPUT.PUT_LINE(v_Temp);
    END;
      

  10.   

    存储过程和PL/SQL语法不一样吗 ?
      

  11.   

    ? 存储过程属于PL/SQL块 的一种
      

  12.   

    同意ATCG(ATCG),所有变量必须在declare与begin之间定义
      

  13.   

    很奇怪,你怎么会把声明变量写道begin后面?
      

  14.   

    声明的变量中不能定义长度,改为
    CREATE OR REPLACE  PROCEDURE "VISION"."HRM_TEST"  AS
    (v_UserID VARCHAR2,v_PWD VARCHAR2)
    就可以了
      

  15.   

    我以前是用sqlserver的.
    to:xinpingf(白开心) 
    那么我想定义一个局部变量怎么定义?
      

  16.   

    我以前是用sqlserver的.
    to:xinpingf(白开心) 
    那么我想定义一个局部变量怎么定义?
      

  17.   

    To nullhue() :       难道我告诉你的方法不行吗???