0
名前と姓を格納するネストした表を作成しました。 1つの名前には2つの姓があります。ネストした表の操作
CREATE OR REPLACE TYPE list_surname AS TABLE OF VARCHAR2(10);
/
CREATE TABLE person (name varchar2(10),
surname list_surname)
NESTED TABLE surname STORE AS list;
/
INSERT INTO person VALUES('Olsen', list_surname('Arthur', 'Baxter'));
INSERT INTO person VALUES('Jensen', list_surname('Barney', 'Louis'));
INSERT INTO person VALUES('Andersen', list_surname('Chase', 'Mason'));
/
今、私は数えると、人々は文字が含まれていても1人の姓を持っているどのように多く表示するには、無名ブロックを作りたい「U」を、その人は彼の姓に文字「U」を持っているならば、私がしたいですその人(名前+姓)を印刷します。
set serveroutput on
DECLARE
v_var VARCHAR2(32);
v_nr NUMBER(30);
cursor c1 (var VARCHAR2) is
select regexp_count(var,'[u]',1,'i') from dual;
BEGIN
FOR i IN person.FIRST .. person.LAST LOOP
v_nr := 0;
open c1(person.list_surname);
loop
fetch c1 into v_nr;
exit when c1%notfound;
IF v_nr > 0 THEN
DBMS_OUTPUT.put_line(person);
end if;
end loop;
close c1;
end loop;
END;
/
私はこれが初めてですので、ネストした表での作業では本当によくないよ:これは私がこれまでに作ったものです。どんな提案も大歓迎です。ありがとう!