{jenkins-plugin-info:sqlplus-script-runner}

This plugin enables you run Oracle SQL*Plus scripts on your Jenkins jobs (user defined scripts or a script inside a workspace).

Releases


To migrate your workspace from version 2 is very simple, all you need to do is:

  1. Create a credential for your user and password;
  2. Edit you job configuration and select one credential;
  3. Save your changes and you are good to go!



Summary

This plugin enables you run Oracle SQL*Plus scripts on your Jenkins jobs ( Oracle SQL*Plus installation required! ).

Configuration

Global

All you have to do is check the auto detect ORACLE_HOME option ( or a valid ORACLE_HOME ) and you are in business:



If you are having problems try to enable Debug info to see what is going on.

By Job

You can run a script inside your workspace or a user defined for every job:


Version 1.x:


 


Version 2.x :


Environment variables


Pay attention to what version you are using in order to work with variables:


variableVersion 1.xVersion 2.x
user  okreplaced by credentials
password okreplaced by credentials
instanceokok



You can use global variables for user and instance, first creating it in Jenkinsconfiguration :


You user global variable can hold username and password as well like this (username/password):



And then using it:

Running

You can check later all SQL*Plus output inside your build output:


Pipeline


User defined script


node {
   echo 'SQLPlusRunner running user define script for system@xe'
  
 step([$class: 'SQLPlusRunnerBuilder',credentialsId:'system', 
instance:'xe',scriptType:'userDefined', script: '',scriptContent: 
'select * from v$version'])
}



File script


node {
   echo 'SQLPlusRunner running file script for system@xe'
  
 step([$class: 'SQLPlusRunnerBuilder',credentialsId:'system', 
instance:'xe',scriptType:'file', script: 'start.sql',scriptContent: ''])
}



Optional pipeline parameters




Download the last release and give it a try!

Reported problems


my script takes forever to execute...


Windows users sometimes get a running script stuck on build, even though they run everything on Oracle.

In that case you should use Build Time Out plugin together to get everything working fine.


I have an error ORA-????


You should try running manually SQL*Plus before use Jenkins.

Sometimes on Linux Jenkins has his own Operation System user with his own variables.


Every time I get this error: cannot find sqlplus


Jenkins plugin can't find SQL*Plus executable file.

You should do in this order:

  1. Stop Jenkins;
  2. Find where are sqlplus executable file (usually at $ORACLE_HOME);
  3. Check if they have proper permissions (chmod 755 *);
  4. Create a global environment variable ORACLE_HOME like this:
    export ORACLE_HOME=/oracle/app/oracle/product/12.1.0/dbhome_1/    or   export ORACLE_HOME=<your-sqlplus-directory>

  5. Test your environment with:  sqlplus -v    , should return SQL*Plus version like SQL*Plus: Release 12.1.0.1.0 Production

  6. Start Jenkins;

  7. Use the try to detect ORACLE_HOME option;

  8. Retry your SQL*Plus operation.


Every time I get this error: libsqlplus.so: cannot open shared object file: No such file or directory or SP2-0667: Message file sp1.msb not found


SQL*Plus need its library and its message file to work properly.

You should do in this order:

  1. Stop Jenkins;
  2. Find where are libsqlplus.so files (usually at $ORACLE_HOME\lib );
  3. Check if they have proper permissions (chmod 755 *);
  4. Create a global environment variable LD_LIBRARY_PATH like this:
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH    or   export LD_LIBRARY_PATH=<your-libsqlplus-directory>:$LD_LIBRARY_PATH

  5. Test your environment with:  sqlplus -v    , should return SQL*Plus version like SQL*Plus: Release 12.1.0.1.0 Production

  6. Start Jenkins;

  7. Use the try to detect ORACLE_HOME option;

  8. Retry your SQL*Plus operation.


I want to hide my user / password from Console Output


  1. Install Mask Passwords Plugin;

  2. Setup to hide everything you want.




I have a bug to report

Please open a new issue and inform: