Compile PL/SQL with Visual Studio Code (Compilar PlSql VS Code)

En esta oportunidad veremos la forma de como compilar archivos Pl/Sql Oracle usando el editor de Visual Studio Code.

Hace unos días revisaba que Visual Code viene teniendo una gran acogida por los developers, y una de las cosas que me llamo la atencion es el consumo de memoria que es mínimo en comparación con Atom, luego de probarlo vi que tienes muchas cosas interesantes en los atajos de teclado y la cantidad de extensiones que tiene para todo.
En un siguiente blog indicare las extensiones que recomiendo, ahora nos centraremos en como compilar un archivo de Oracle  PL/SQL en este editor.

Mostrare 3 formas de hacer esto, estas extensiones fueron desarrolladas por terceros.

* Mencionar que encontre algunos bugs como:

  • Al compilar la ruta del archivo , carpetas y nombre no archivo no debe tener espacios en blanco. Ejem: No: proyecto ciencia 1  Si proyectociencia1
  • Al poner los archivos en el directorio raiz no funcionaba por que tenia dos proyectos abiertos.

1) Usando odb-task (la que uso)

Esta herramienta fue creada por Trent Schafer , aqui pueden seguir la guía detallada que es muy similar si han usado ATOM. GitHub

Lo primero a realizar es crear un archivo .build-oracle.json

Si no tienes el Path para usar sqlcl puedes ir a configuración y luego selecciones odb-task y agregas el path donde tengas sqlcl, ami también me gusta activar el Save antes de compilar.

Y para compilar presionas crtl + shift + P y escribes compile y usas ya sea sqlplus o sqlcl.

Si no te funciono o te da un error, puede que necesites cerrar y abrir Visual Code para que cargue la nueva configuración.
2) Usando Task Runner
Para este parte segui un tutorial de Morten Braten , aqui 
La configuración es exactamente como indica, solo que el primer archivo tasks.json tiene que tener el código que dejo líneas abajo y esto porque ahora enero-2019 Visual  Code usa la version 2.0.0 y tube que hacer unas modificaciones al archivo para que funcione correctamente.
En args tiene que indicar las credenciales de su conexión.

{
\"version\": \"2.0.0\",

// The command is a shell script
//\"isShellCommand\": true,
\"type\": \"shell\",
// Run sqlplus via a batch file
\"windows\": {
\"command\": \"./_run_sqlplus.bat\"
},
\"osx\": {
\"command\": \"./_run_sqlplus.sh\"
},
\"linux\": {
\"command\": \"./_run_sqlplus.sh\"
},

// first argument is the database connection string
// second argument is the file to execute (ie the current file)
\"args\": [\"schema_01/2345@localhost:1521/xe\", \"@\\\"${file}\\\"\"],
// \"args\": [\"user/password@localhost:1521/xe\", \"@D:\\\"+\"test_sql.sql\"],

// do not switch to the output pane automatically
// \"showOutput\": \"silent\",
// \"presentation\" : { \"reveal\": \"silent\" },

// use this to get any database errors (from user_errors view) listed in the \"Problems\" pane in VS Code
\"problemMatcher\": {
\"owner\": \"plsql\",
//\"fileLocation\": [\"relative\", \"${fileDirname}\"],
\"fileLocation\": [\"relative\", \"${workspaceFolder}\"],
\"pattern\": [
{
\"regexp\": \"(.*) (\\\\d*)\\/(\\\\d*) (.*?) (.*)\",
\"severity\": 1,
\"line\": 2,
\"column\": 3,
\"file\": 4,
\"message\": 5,
\"loop\": true
}
]
},
\"group\": {
\"kind\": \"build\",
\"isDefault\": true
}
}

Deben incluir los archivos en el directorio raíz.

Y para compilar usan crtl + shift + B o Terminal \”Run Build Task\”

3) Usando la extención Plsql-language

Esta extensión permite también compilar, pero como indica en su página aun está en desarrollo, pueden seguir las instrucciones aqui.

Recomendaciones para usar esta extensión es ir a configuración y allí tienen que habilitar la conexión de Oracle.

Otra que tienen que hacer es crear su conexión ejem:

crtl + shift + P , escriben PlSql , active connection e insert new connection

Y como adicional para compilar seleccionan el texto y presionan crtl + Enter, pero tube el problema que esta combinación de teclas estaba asignada a otra acción, para mi  caso lo cambie por crtl + f11.

Nota que no usa \”;\” al final de la linea para ejecutar.

Published by Angel O. Flores Torres

System engineer, Applications engineer, working with C# and Oracle Apex 5, 5.1 since 2017. I specialize in Oracle APEX (Oracle Application Express )

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: