我有一个Oracle SQL过程,该过程在编译时给出Bad bind variable 'VNAME1'
错误。想法是在REGEX查询中传递item.tempid2
的值。
以下步骤:
DECLARE
anyexists varchar2(10);
CURSOR c_length IS SELECT SUBSTR(first_name,1,1)||substr(last_name) as
tempid2, user_id, Custom_Unique_Name FROM PV_USERS;
vname1 varchar(20);
exec vname1:= NULL;
BEGIN
FOR item in c_length
LOOP
EXIT WHEN c_length%notfound;
vname1:= item.tempid2;
SELECT COUNT(*) INTO anyexists from (SELECT
Custom_Unique_Name from PV_USERS
WHERE REGEXP_LIKE (Custom_Unique_Name, '^'|| :vname1 ||
'[^A-Za-z][0-9]*')
AND user_id <> item.user_id);
END LOOP;
END;
答案 0 :(得分:-1)
您应该在USING vname1
语句的末尾添加一个SELECT
子句。