Wednesday, January 2, 2019

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.




Share:

0 comentarios:

Post a Comment

Acerca de mi:

img

Ing. Angel O. Flores Torres, soy Ingeniero de Sistemas e Ingeniero de Aplicaciones Oracle Apex, he trabajado con Oracle Apex 5 y 5.1 desde el 2017, En los ultimos años he desarrollado habilidades en CSS, JavaScript, Jquery y PlSql , I specialize in Oracle APEX (Oracle Application Express )

Followers

Popular Posts