feat(oracle): add OS script execution procedures and Oracle locations finder
- ExecuteScriptOS.prc: runs PowerShell scripts via DBMS_SCHEDULER - UpdateSQLPLUS.prc: runs SQL*Plus scripts via DBMS_SCHEDULER - find_oracle_locations.sql: comprehensive script to discover all Oracle DB paths for backup/migration Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
create or replace procedure ExecuteScriptOS(tcPowerShellPath in varchar2,
|
||||
tcScriptPath in varchar2) as
|
||||
lcJobName varchar2(500);
|
||||
begin
|
||||
lcJobName := 'exec_ps_' || SUBSTR(SYS_GUID(), 1, 8);
|
||||
|
||||
DBMS_SCHEDULER.CREATE_JOB(
|
||||
job_name => lcJobName,
|
||||
job_action => tcPowerShellPath,
|
||||
number_of_arguments => 4,
|
||||
job_type => 'executable',
|
||||
enabled => FALSE
|
||||
);
|
||||
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 1, '-ExecutionPolicy');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 2, 'Bypass');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 3, '-File');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 4, tcScriptPath);
|
||||
|
||||
DBMS_SCHEDULER.ENABLE(lcJobName);
|
||||
end ExecuteScriptOS;
|
||||
/
|
||||
@@ -0,0 +1,15 @@
|
||||
create or replace procedure UpdateSQLPLUS(tcSqlPlusPath in varchar2,
|
||||
tcScriptPath in varchar2) as
|
||||
lcJobName varchar2(500);
|
||||
begin
|
||||
lcJobName := 'updateschema_' || to_char(sysdate, 'YYYYMMDDHH24MISS');
|
||||
dbms_scheduler.create_job(lcJobName,
|
||||
job_action => tcSqlPlusPath,
|
||||
number_of_arguments => 2,
|
||||
job_type => 'executable',
|
||||
enabled => false);
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 1, '/nolog');
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 2, '@' || tcScriptPath);
|
||||
dbms_scheduler.enable(lcJobName);
|
||||
end;
|
||||
/
|
||||
Reference in New Issue
Block a user