Ich möchte Werte in einer Tabellenspalte (Spaltentyp ist Integer) einem Integer-Array zuweisen. Leider konnte ich nicht.SELECT INTO INTEGER ARRAY
--TYPE--
CREATE OR REPLACE TYPE ABILITY_ID_ARRAY IS VARRAY(100) OF INTEGER
--DECLARE IN PROCEDURE
ABILITY_IDS ABILITY_ID_ARRAY;
--STATEMENT--
SELECT ABILITY_FK INTO ABILITY_IDS
FROM T_EDUCATION_ABILITY_REL
WHERE EDUCATION_FK = edu_id;
erhielt ich diesen Fehler:
[Error] ORA-00932 (16: 12): PL/SQL: ORA-00932: inconsistent datatypes: expected UDT got NUMBER
welcher Typ ABILITY_FK und ABILITY_IDS - sieht aus wie einer ist eine Zeit und der andere eine Zahl. Überprüfen Sie auch Ihre Where-Klausel – DCR
ABILITY_FK ist Ganzzahl, ABILITY_IDS ist Ganzzahl-Array referenziert TYPE ABILITY_ID_ARRAY –
Warum "ABILITY_ID_ARRAY", wenn es ein generisches Array von ganzen Zahlen ist? (Abgesehen von der Grenze von 100. Gibt es eine Geschäftsregel für maximal 100 Fähigkeits-IDs, oder haben Sie gerade die Syntaxanforderung erfüllt und eine Zahl eingegeben, um sie kompilieren zu lassen? Wenn ja, machen Sie eine geschachtelte Tabelle statt einer varray.) –