目前我正在使用oracle 11g中的類型對象。在這方面,我有DB對象如下:如何在類型對象上創建索引?
表
CREATE TABLE students (rollno NUMBER(15) primary key, s_Name VARCHAR2(20), Marks type_1 );
類型對象規範是
CREATE OR REPLACE type type_1 AS object ( sub_1 NUMBER, sub_2 NUMBER, sub_3 NUMBER, member FUNCTION total RETURN NUMBER, member FUNCTION e_result RETURN VARCHAR2);
它的機身
CREATE OR REPLACE type body type_1 AS member FUNCTION total RETURN NUMBER IS BEGIN RETURN (sub_1+sub_2+sub_3); END; member FUNCTION e_result RETURN VARCHAR2 IS DECLARE temp NUMBER; BEGIN temp :=sub_1+sub_2+sub_3; IF(temp>50) THEN RETURN ('pass'); ELSE RETURN ('fail'); END IF; END; END;
創建畢竟這些事情,甚至我已經成功地使用填充
BEGIN
FOR i IN 1..800 LOOP
FOR j IN 1..400 LOOP
INSERT INTO students
VALUES (sequence1.NEXTVAL,
dbms_random.String('A', 5),
Type_1(Round(dbms_random.Value(10, 100)), Round(
dbms_random.Value(10, 100)), Round(dbms_random.Value(10, 100))));
END LOOP;
END LOOP;
dbms_output.Put_line('completed');
COMMIT;
END;
/
我需要在tot
列上e_result
列和普通索引創建位圖索引的學生表。
我已經試過
create index id1 on students(marks.total)
和
create bitmap index bid1 on students(marks.e-result)
但我不能。我應該做些什麼?
只是好奇你爲什麼要創建一個對象的嵌套表rathe而不是簡單地創建一個MARKS表並根據需要加入學生?但是,也許這只是pl/sql的練習? – tbone 2013-03-04 12:08:30
@ tbone:你正好...這只是與類型的對象夥計的做法! – 2013-03-04 12:48:53