En PL SQL, el error ORA-01422: Exact fetch returns more than requested number of rows se produce cuando se tiene una consulta SELECT - INTO que devuelve más de una fila.
Por ejemplo:
PLAIN TEXT
PLSQL:
DECLARE
n_orderid NUMBER;
BEGIN
SELECT o.orderId
INTO n_orderid
FROM t_ordenes o
WHERE o.status = 'a'
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Error '||SQLERRM);
END;
Si es que la se tienen varias filas que cumplan la [...]
Hace unos días me llegaron algunos libros que compré en Amazon y voy a recomendarles un par de ellos. Ambos son de categorías diferentes, pero vienen muy bien para quien esté interesado en los temas que abordan.
GIMP 2 for Photographers: Hace poco me he aficionado a la fotografía así que compré este libro para [...]
En una anterior entrada mostraba cómo manejar cursores en PL SQL, ahora veremos cómo manejar cursores con parámetros.
Los cursores con parámetros son útiles cuando queremos restringir los resultados de la consulta, también son prácticos porque los declararemos como variables (no es necesario reescribir el código) y si no es necesario utilizar todas las columnas devueltas [...]
Los cursores son estructuras que se pueden utilizar cuando queremos almacenar los resultados de un SELECT que devuelve varias filas.
Son sencillos de implementar pero tienen algunas desventajas: si agregamos posteriormente columnas al SELECT, tendremos que agregarlas en cada lugar en donde hagamos un FETCH del cursor (lo que complica las cosas cuando se tienen [...]
Con PL SQL podemos crear archivos en el servidor de esta forma:
PLAIN TEXT
PLSQL:
DECLARE
wv_filename VARCHAR2(1000);
wv_unixpath VARCHAR2(1000);
wf_output UTL_FILE.FILE_TYPE;
BEGIN
wv_filename := 'prueba.txt';
wv_unixpath := '/directorio/de/escritura';
//Abre (o crea) el archivo para escritura
wf_output := UTL_FILE.fopen (wv_unixpath,wv_filename,'w');
//Excribe un par de líneas
UTL_FILE.put_line (wf_output,'línea de prueba');
UTL_FILE.put_line (wf_output,'otra línea [...]
Cuando encuentro estas cosas me pongo a renegar (caso real que encontré entre el código en el trabajo):
No porque sea un talibán, sino porque me parece que dificulta la lectura del código.
Algo de lógica básica no vendría mal a algunos programadores, recuerden:
PLAIN TEXT
PLSQL:
IF a THEN
IF b THEN
IF c THEN
[...]
Comentarios