Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   error 00922 falta la opcion o no es valida (http://www.forosdelweb.com/f100/error-00922-falta-opcion-no-valida-551682/)

JAPA24 26/01/2008 07:39

error 00922 falta la opcion o no es valida
 
Hola espero esten todos bien, quisiera saber quien me puede ayudar con un error que se me genera al intentar ejecutar un codigo que me llama a un procedimiento para generar un html

SET VERIFY OFF
SET FEEDBACK OFF
SET ECHO OFF
SET LINESIZE 250
SET SERVEROUTPUT ON SIZE100000
SET TERMOUT OFF
SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP OFF

SPOOL C:\Users\Jose Antonio\Desktop\CONSULTA\Consulta_Producto.html

EXECUTE consulta_producto (8105);

SET VERIFY ON
SET FEEDBACK ON
SPOOL OFF
SET MARKUP HTML OFF
SET ECHO ON
SET LINESIZE 90
HOST C:\Archivos de programa\Mozilla Firefox\firefox.exe C:\Users\Jose Antonio\Desktop\CONSULTA\Consulta_Producto.html

no entiendo porque no lo hace, aqui está el procedimiento

CREATE OR REPLACE PROCEDURE consulta_producto (par_prod IN INTEGER)
IS
CURSOR prod
IS
SELECT NOMBRE
FROM PRODUCTO
WHERE ID_PRODUCTO = par_prod;

diralias_name VARCHAR2 (120);
file_name VARCHAR2 (120);
directorio VARCHAR2 (250);
descripcion VARCHAR2 (200);
valor INTEGER;
ruta VARCHAR2 (250);
n INTEGER;
BEGIN
valor := 1;
DBMS_OUTPUT.put_line
('<style type="text/css">body {background-image: url(file:///D:\CONSULTA\fondo.PNG);}</style>'
);
DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');
DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');

FOR i IN prod
LOOP
DBMS_OUTPUT.put_line
('<style type="text/css">.style1 {color: #400040; font-family: "Times New Roman", Times, serif;}</style>'
);
DBMS_OUTPUT.put_line
( '<font face="Curier New" size="4"><div align = "center"><b><span class="style1">'
|| i.NOMBRE
|| ' '
|| '</span></b></div></td>'
);
valor := valor + 1;
END LOOP;
END consulta_producto;
/



solo quiero mostrar el nombre por ahora para luego mostrar la foto

matanga 26/01/2008 08:30

Re: error 00922 falta la opcion o no es valida
 
Hola,

El procedimiento se ve bien, ademas el error ORA-00922 no tiene mucho que ver con PL/SQL. Intenta realizar la ejecucion del proceso paso a paso.

1. EXECUTE consulta_producto (8105); con el serveroutput activado para ver los resultados.
2. Agrega todos los SET del SQL*Plus.
3. Agrega el SPOOL y el HOST.

Pd, Probe el proceso completo (copy/paste), lo unico que cambie fue el PATH del SPOOL, el Firefox por el Vi, y funciona bien.

Saludos

kikolice 26/01/2008 10:02

Re: error 00922 falta la opcion o no es valida
 
y ya que andas por ahi tambien corrigele un poco el html

DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');
DBMS_OUTPUT.put_line ('<font face="Curier New" size="10"><p></p>');

parece que eso sirve para darle un espacio, igual con <br/> queda, si no al menos cierra la etiqueta "font" com </font>

DBMS_OUTPUT.put_line
( '<font face="Curier New" size="4"><div align = "center"><b><span class="style1">'
|| i.NOMBRE
|| ' '
|| '</span></b></div></td>'
);

si estas usando la clase "style1" el <b> sobra, ponlo en la clase con "font-weight:bold;" el div para el centrado con "text-align:center;" y el font con "font-family:"Courier New"" y "font-size:4px;"

('<style type="text/css">.style1 {color: #400040; font-family: "Times New Roman", Times, serif;}</style>'
);

sacalo del loop estarias declarando cada iteracion

ya por ultimo checate las etiquetas head, body, y html para que se vea correctamente :-)

aneixons 08/06/2012 03:56

Respuesta: error 00922 falta la opcion o no es valida
 
Esto tambien me da este error. Sugerencias?

Create or replace Trigget t_factura
after update on RESERVA
for each row
Declare
v_precio_hab TIPUSHAB.PREU%TYPE;
v_precio_aloj TIPUSESTADA.PREU%TYPE;
Begin
if updating('OCUPADA') then

select PREU into v_precio_hab
from HABITACIO, TIPUSHAB
where :new.NUMHAB=HABITACIO.NUMHAB and habitacio.TIPUSHAB_CODTIPUS=tipushab.codtipus;

select PREU into v_precio_aloj
from TIPUSESTADA
where :new.CODESTADA=TIPUSESTADA.CODESTADA;

Insert into factura values
(
seq_numfra.nextval, :new.NUMHAB, :new.DATAARRIBADA, :new.DATAFACTURACIO, (:new.DATAFACTURACIO-:new.DATAARRIBADA) * (v_precio_hab+v_precio_aloj)
);

endif;
end;


La zona horaria es GMT -6. Ahora son las 09:51.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.