Créer ou simuler des tableaux bidimensionnels en PL / SQL
Pouvez-vous s'il vous plaît aider moi comment créer un tableau à deux dimensions en PL/SQL pour une Procédure Stockée? Les colonnes sont dynamiques de sorte qu'il peut cultiver et le changement dans les types de.
Toute aide est appréciée. Je vous remercie à l'avance!
J'ai le code suivant:
Type CAR_TABLE_ARRAY is varray(2) of varchar2(255);
TYPE CAR_TABLE_TYPE IS TABLE OF CAR_TABLE_ARRAY;
CAR_TABLE CAR_TABLE_TYPE;
CAR_TABLE := CAR_TABLE_TYPE();
CAR_TABLE.EXTEND(10);
CAR_TABLE(1)(1) := 'DODGE';
CAR_TABLE(2)(1) := 'FORD';
CAR_TABLE(3)(1) := 'MUSTANG';
CAR_TABLE(4)(1) := 'EDSEL';
CAR_TABLE(5)(1) := 'STUDEBAKER';
DBMS_OUTPUT.put_line( '1 ' || CAR_TABLE(1)(1) );
DBMS_OUTPUT.put_line( '2 ' || CAR_TABLE(2)(1) );
DBMS_OUTPUT.put_line( '3 ' || CAR_TABLE(3)(1) );
DBMS_OUTPUT.put_line( '4 ' || CAR_TABLE(4)(1) );
DBMS_OUTPUT.put_line( '5 ' || CAR_TABLE(5)(1) );
Quand je le lance j'obtiens l'erreur suivante:
ORA-06531: Référence à la collection non initialisée
source d'informationauteur Jemru
Vous devez vous connecter pour publier un commentaire.
Voici un exemple d'utilisation d'un tableau multidimensionnel en pl/sql. Ici, j'utilise un tableau contenant un tableau.
Sortie:
Espère que ça aide
VARRAY et imbriqués de table défini par l'utilisateur les types de données doivent toujours être initialisé à l'aide d'un constructeur. Vous êtes en train de faire cela correctement pour la table imbriquée, mais pas pour le VARRAYs qu'il contient. La solution la plus simple est d'appeler le constructeur de la cession de lignes:
C'est parce que vous faites référence à l'intérieur des tableaux qui ne sont pas initialisés.
Ajouter quelque chose comme:
Ou faire l'intérieur des tableaux (CAR_TABLE_ARRAY) asociative tableaux: