Está en la página 1de 3

Instructivo de SQLPLUS

Instructivo para conocer los métodos de ejecución de script para probarlos antes de enviarlos a Operaciones
para su despliegue

1) Ejecutar y conectarse a SQLPLUS:


Dependiendo de la instalación de Oracle que tengan en sus pcs podemos encontrar alguna de estas aplicaciones que
utilizaremos para las pruebas:

Ambas hacen exactamente lo mismo para la finalidad de este instructivo.

Dependiendo de cual utilicemos nos vamos a conectar de alguna de las formas siguientes:

Por linea de comando


C:\sqlplus [nombre_de_usuario/clave@base_de_datos]

O ingresamos usuario, clave y base de datos desde la interfase de Windows


2) Ejecución de scripts
Para realizar las pruebas de ejecución de scripts lo más conveniente es copiar el script a una carpeta local fácilmente accesible.
Por ejemplo C:\Temp. Esto es para evitar confusiones con los paths demasiados largo o inaccesibles desde otras unidades

Para ejecutar los scripts vamos a utilizar los comandos start o @ respetando la sintaxis:

SQL> start carpeta+nombre_del_archivo.extension


o
SQL> @ carpeta+nombre_del_archivo.extension

Ejemplos
SQL> start c:\temp\mod_89299_1.sql

Es exactamente lo mismo que ejecutar


SQL> @ c:\temp\mod_89299_1.sql
3) Verificación de ejecución
Verificar que el comando se ejecutó exitosamente o si se generaron errores para su posterior análisis y corrección

Ejemplo de ejecución exitosa


SQL> start c:\temp\mod_89299_1.sql
PL/SQL procedure successfully completed.

Ejemplo de ejecución con errores. Se debe identificar el error para su tratamiento:


SQL> start c:\temp\mod_89299_1.sql
update dem_evaluaciones
*
ERROR at line 5:
ORA-06550: línea 5, columna 8:
PL/SQL: ORA-00942: la tabla o vista no existe

En el caso de ejecutar scripts que contengan mensajes de salida (para control) con la instrucción DBMS_OUTPUT se debe
activar la salida de estos mensajes en la aplicación mediante el comando:

SQL>set serveroutput on

En el caso de enviarse packages, funciones o procedimientos debe tenerse en cuenta que en caso de error la ejecución del
comando nos puede tirar un mensaje similar a lo siguiente:

SQL> start c:\temp\paq_liquidacion_pb.sql


Warning: Package Body created with compilation errors.

Para visualizar estos errores de compilación debemos ejecutar el siguiente comando

SQL> show errors


Errors for PACKAGE BODY LIQUIDACION:

LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/14 PLS-00201: identifier 'LIQUIDACION' must be declared
1/14 PLS-00304: cannot compile body of 'LIQUIDACION' without its
specification

4) Casos de errores frecuentes:

- Falta de / al finalizar el script


Si nuestro script al ejecutarse queda tildado en la linea siguiente a su ejecución como se muestra en el siguiente caso

SQL> start c:\temp\mod_89299_1.sql


20

Se debe colocar el caracter / en el script para indicar que finaliza la sentencia o script para que el sqlplus lo ejecute.

- Olvido de Rollback o Commit;


La falta de Commit o Rollback es otro de los errores frecuentes que se cometen en el envio de scripts.
Deben recordar que estos deben ser agregados siempre en nuestros scripts para confirmar los cambios o realizar una vuelta
atrás en caso de producirse un error en el script.

- Comandos que superan los 2500 caracteres por linea


La longitud máxima de un comando (por ejemplo sentencias select, update, insert, etc) no puede exceder los 2500 caracteres.
Si eso sucede aparece el error mencionado por Hector.
Para evitar este problema lo conveniente es concatenar algunos valores que pueden estar dentro de esas sentencias para que
cualquier comando no exceda ese valor. Se concatena con || (doble pipe).
Ejemplo:
Lo siguiente va a dar error suponiendo que solamente el insert supere los 2500 caracteres el inicio del INSERT hasta el punto y
coma(;).

SQL> BEGIN
INSERT INTO tabla (col1, col2, col3) VALUES ('123412341234......1234',
'123412341234......1234', '123412341234......1234');
END;
SP2-0027: Input is too long (> 2499 characters) - line ignored

Solución sugerida: Concatenar valores con || y Enter


SQL> BEGIN
INSERT INTO tabla (col1, col2, col3) VALUES
('123412341234......'||
'1234', '123412341234......1234', '123412341234......1234');
END;

Espero les sirva.


Cualquier duda estoy a disposición

Saludos

También podría gustarte