¿Puede ayudarme cómo puedo crear una matriz bidimensional en PL/SQL para el Procedimiento almacenado? Las columnas son dinámicas, por lo que pueden crecer y cambiar también en tipos. Se agradece cualquier ayuda. ¡Gracias de antemano!Crear o simular matrices bidimensionales en PL/SQL
Tengo el siguiente código:
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));
Cuando corro me sale el siguiente error:
ORA-06531: Reference to uninitialized collection
Una matriz de dos dimensiones matemáticamente es solo una asignación (X, Y) -> VALOR. Entonces, ¿qué tal crear una tabla temporal con 3 columnas: X, Y, VALOR en PL/SQL? –
hola BycycleDude, gracias por su respuesta. Sin embargo, no puedo crear una tabla temporal, porque creo que las columnas deben ser dinámicas para que pueda cambiar sus tipos de columnas y el número de columnas. – Jemru
Fácil, solo cree una columna 'TYPE' y cree numerosas columnas' VALUE' con nulos y configure solo la que necesita: X, Y, TYPE, VALOR_FLOAT, VALUE_STRING, VALUE_TIMESTAMP, VALUE_BLOB, ... –