SoloCodigo
Bases de Datos => Oracle => Mensaje iniciado por: lcauso en Viernes 3 de Diciembre de 2004, 12:52
-
Hola, quiero utilizar la sentencia IF-THEN-ELSE en un script, pero no utilizando lenguange PL/SQL, ¿se puede utilizar?
Un ejemplo:
IF(select 1 from tabla) THEN
conjunto de sentencias;
END IF;
Gracias
-
TENGO ENTENDIDO, QUE SOLO EN PL/SQL SE PUEDEN UTILIZAR ESE TIPO DE SENTENCIAS AL IGUAL QUE WHILE Y FOR, 'TONCES NO CREO POSIBLE QUE LO PUEDAS HACER :(
OK. CHAO
-
lcauso lo que acabas de decir no tiene sentido.
o al menos no lo has sabido expresar.
-
Hola de nuevo, lo que hago es modificaciones de objetos de modelo de datos, es decir, utilizo sentencias DDL y por ello no puedo utilizar PL/SQL.
Necesito comprobar que modificaciones se han realizado y en consecuencia realizar diferentes rollback de ellas.
Tampoco me dejan utilizar ningun tipo de lenguaje embebido
¿Se os ocurre alguna forma?
-
Las sentencias que modifican las estructuras o crean nuesvas estructuras de datos no permiten hacer rollback.
Por otro lado con PL/SQL si puedes crear estructuras (usa DDL) y usar otras sentencuias, esto lo puedes hacer de dos formas
1- a traves de la sentencia execute immediate, la cual recuibe como parametro un string con lo que piensas ejecutar en DDL o otro tipo desentencias sql
2- a traves del package incorporado de oracle que se llama DBMS_SQL usando sus metodos: DBMS_SQL.OPEN_CURSOR, DBMS_SQL.PARSE ,DBMS_SQL.BIND_VARIABLE , DBMS_SQL.DEFINE_COLUMN, DBMS_SQL.EXECUTE, DBMS_SQL.FETCH_ROWS, DBMS_SQL.COLUMN_VALUE, DBMS_SQL.IS_OPEN , DBMS_SQL.CLOSE_CURSOR etc.
-
Muchisimas gracias Juank, tu ayuda me ha servido de mucho.
GRACIAS