2017-02-27 29 views
0

我必須讀取一些字符串子集來檢查用戶(我的表)中是否有任何名稱包含該子集。PL/SQL使用讀取變量

DECLARE 
    numberOf_studs users.name%type; 
BEGIN 
    SELECT count(name) INTO numberOf_studs FROM users where replace(name,&name,'#')<>name ; 
    DBMS_OUTPUT.PUT_LINE('Number of studs: ' || numberOf_studs); 
END; 

這就是我想要做的,但我在使用&名讀取輸入了一些錯誤。

+0

檢查一個字符串是否包含一個子字符串比你所做的要簡單得多。例如,'where'條件可能是'where'的名稱,如'%'|| '&name'|| '%''(該字符串也可以寫成''%name%'',但我覺得這個版本難以閱讀。) – mathguy

+0

是的,這樣做確實很簡單。我剛剛拿到了我的第一個想法,可能我認爲這不是那麼容易。 – reg

回答

1

我想你打算這樣:

DECLARE 
    numberOf_studs int; 
BEGIN 
    SELECT count(name) INTO numberOf_studs FROM users where replace(name,'&name','#')<>name ; 
    DBMS_OUTPUT.PUT_LINE('Number of studs: ' || numberOf_studs); 
END; 
/

事情我改變:

  • &name'&name'作爲輸入的值將(可能)是一些文本值
  • numberOf_studs datetype到int爲計數將是一個數字值