CREATE OR REPLACE PROCEDURE AAA
AS
BEGIN
IF (SELECT BPRICE FROM BOOKS WHERE BID = 1) = 0 THEN
.....
END IF;
END;
说是"SELECT"这句出错了,错误信息:
错误:PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:

解决方案 »

  1.   

    SELECT BPRICE FROM BOOKS WHERE BID = 1 
    select 语句不能作为if的查询判断条件。
      

  2.   

    你要先设个变量
    比如temp
    SELECT BPRICE into temp FROM BOOKS WHERE BID = 1
    if temp=0
      

  3.   

    我可以这样写吗?CREATE OR REPLACE PROCEDURE AAA 
    AS
    TEMP VARCHAR2(10); 
    RESULT NUMBER(10);
    BEGIN 
    TEMP :="SELECT BPRICE INTO RESULT FROM BOOKS WHERE BID = 1";
    IF (RESULT) = 0 THEN 
    ..... 
    END IF; 
    END; 
      

  4.   

    写SELECT BPRICE INTO RESULT FROM BOOKS WHERE BID = 1,然后if RESULT = 0 then 就可以。那个叫做TEMP的变量实际上没有用的。
      

  5.   

    因为在存储过和里不能直接写SELECT啊。。
      

  6.   


    CREATE OR REPLACE PROCEDURE AAA
    AS
       v_temp NUMBER(1, 0) := 0;
    BEGIN
       BEGIN
          SELECT 1 INTO v_temp
            FROM DUAL
           WHERE ( SELECT BPRICE
                   FROM table_a
                      WHERE a = 1 ) = 0;
       EXCEPTION
          WHEN OTHERS THEN
             NULL;
       END;   IF v_temp = 1 THEN
          DBMS_OUTPUT.PUT_LINE('sdfds');   END IF;END;
      

  7.   

    SP里可以有两个BEGIN???我才知道 谢谢啊