Oracle рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рд╢реЗрд▓

Oracle рд╕реЗ рд▓реЗрдЦ рдХреЙрд▓рд┐рдВрдЧ рд╢реЗрд▓ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдИ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ - рдпрд╣ рд╕рднреА рдУрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдЖрдкрдХреЛ DBMS_OUTPUT рдореЗрдВ рдПрдХ рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдЗрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

рдЪрд░рдг 1: рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдмрдирд╛рдПрдВред

рдЖрдпрд╛рдд java.langред *;
рдЖрдпрд╛рдд java.io. *;
рдЖрдпрд╛рдд java.sql.SQLException;

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рд╣реЛрд╕реНрдЯ {

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрджреЗрд╢) SQLException, IOException рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ
{
#sql {
рд╢реБрд░реВ рдХрд░рдирд╛
DBMS_JAVA.set_output (10000000);
рдЕрдВрдд;
};
рд╕реНрдЯреНрд░рд┐рдВрдЧ uFullCommand = ""; рд╕реНрдЯреНрд░рд┐рдВрдЧ nameOS = System.getProperty ("os.name");

рдЕрдЧрд░ ((nameOS.toLowerCase) ()ред indexOf ("lin")! = -1)
{
uFullCommand = "/ bin / sh" + "-c" + рдХрдорд╛рдВрдб;
}
рдЕрдЧрд░ ((nameOS.toLowerCase) ()ред indexOf ("рдЬреАрдд")! = -1)
{
uFullCommand = "% systemroot% \\ system32 \\ cmd.exe" + "/ y" + "/ c" + рдХрдорд╛рдВрдб;
}
рдФрд░ рдпрджрд┐ ((nameOS.toLowerCase) ()ред indexOf ("nix")! = -1)
{
uFullCommand = рдХрдорд╛рдВрдб;
}
рдЕрдиреНрдпрдерд╛
{
uFullCommand = рдХрдорд╛рдВрдб;
}

рд░рдирдЯрд╛рдЗрдо rt = Runtime.getRuntime ();
рдкреНрд░рдХреНрд░рд┐рдпрд╛ p тАЛтАЛ= rt.exec (uFullCommand);
рдмрдлрд╝рд░рдбреНрд░реЗрдбрд░ рдЗрди = рдирдпрд╛ рдмрдлрд╝рд░рдбрд░ (рдирдпрд╛ рдЗрдирдкреБрдЯрд╕реНрдЯреНрд░реАрдорд░рдПрдбрд░ (p.getInputStream ()));

рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд╛рдЗрди = рдЕрд╢рдХреНрдд;
рдЬрдмрдХрд┐ (рд▓рд╛рдЗрди = in.readLine ())! = null)
{
System.out.println (рд▓рд╛рдЗрди);
}
}
};

рдЪрд░рдг 2: PL / SQL рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред

рдмрдирд╛рдПрдБ рдпрд╛ рд░рд┐рдкреЛрд░реНрдЯ
рдкреНрд░рдХреНрд░рд┐рдпрд╛ host_command_proc (p_command IN VARCHAR2) рдХреЗ рд░реВрдк рдореЗрдВ
рднрд╛рд╖рд╛ JAVA
NAME 'Host.executeCommand (java.lang.String)';
/

рдХреЙрд▓ рдЙрджрд╛рд╣рд░рдг:

рд╢реБрд░реВ рдХрд░рдирд╛
host_command_proc ("ls / tmp");
рдЕрдВрдд;

рдФрд░ рд╣рд╛рдБ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЯреЙрдо рдХрд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Source: https://habr.com/ru/post/In150081/


All Articles