首页 文章

当我尝试创建一个log_in函数时?为什么我有错误Error(3,10):PLS-00215:字符串长度约束必须在范围内(1 .. 32767)

提问于
浏览
1

我正在尝试创建一个函数来通过返回0(零)来验证log_in,如果登录失败,或者1(一)如果登录成功通过匹配cust_id和Passwd作为参数,我有两个问题:

  • 为什么我得错误坏了绑定p_cust_id?

  • 失败时如何返回0?

.

create or replace function log_in
( 
   p_cust_id varchar2, 
   p_paswd varchar2
) return number
as p_all varchar2;    
begin     
  select cust_id,passwd
  into p_all
  from customer
  where cust_id=p_cust_id and passwd=p_paswd;

  return 1;
end;

1 回答

  • 0

    首先,您尝试选择2列但是选择1变量 . 这是不可能的 . 检查我的修复如下

    select cust_id,passwd
    into variable1, variable2
    from customer
    where cust_id=p_cust_id and passwd=p_paswd;
    

    对于您的第二个要求,您需要在结束前添加以下行 .

    EXCEPTION WHEN NO_DATA_FOUND THEN
      return 0;
    END;
    

    EDIT

    您的程序也可以改写为

    CREATE OR REPLACE FUNCTION LOG_IN
    ( 
       P_CUST_ID VARCHAR2, 
       P_PASWD VARCHAR2
    ) RETURN NUMBER
    AS P_COUNT NUMBER;    
    BEGIN     
      SELECT COUNT(*)
      INTO P_COUNT
      FROM CUSTOMER
      WHERE CUST_ID=P_CUST_ID AND PASSWD=P_PASWD;
    
      IF (P_COUNT > 0)
        RETURN 1;
      END IF;
    
      RETURN 0;
    END;
    

相关问题