在测试脚本中使用SQL和REGEX_LIKE打印Select语句

时间:2017-08-03 01:55:47

标签: sql regex oracle

我一直在尝试运行Select语句。所以我不确定我做错了什么。 例如,如果起始字母是“A”而结束字母是“D”,则结果应显示名称以A,B,C和D开头的所有客户。如果输入“A”和“Z”,则结果应该显示所有客户。然后我运行一个FOR循环,它应该运行所有选定的CNAME,然后调用我的程序,除了一个%TYPE的CNAME,然后在适当的格式化中显示。注意:我的程序工作正常,因为我测试了它。

SET SERVEROUTPUT ON;
UNDEFINE v_begining_letter;
UNDEFINE v_ending_letter;
DECLARE
&v_begining_letter CHAR(1);
&v_ending_letter CHAR(1);

CURSOR cur_car IS
SELECT DISTINCT(CNAME)
FROM CAR
WHERE REGEXP_LIKE (CNAME, '^[&v_begining_letter-&v_ending_letter]*$' );

counter integer :=0;
BEGIN

DBMS_OUTPUT.PUT_LINE('Name' || 'Total');
FOR counter IN cur_car LOOP
counter := counter+1;
cust_dep(cur_car.CNAME);
END LOOP;
END;
/ 

1 个答案:

答案 0 :(得分:0)

我想出了问题。 CODE很精细。 您必须注意,当我输入VALUES REGEX时,exp不会转换为大写(除非表示)。 我的数据库有所有大写字母(名称)。