Problem with java function to run unix command [message #92023] |
Fri, 06 February 2004 01:29 |
John Dunn
Messages: 3 Registered: April 2002
|
Junior Member |
|
|
I have a problem with a java function that I use to run unix commands.
It works OK for most commands(for example touch works fine), but I am having problem with the echo command.
I am wondering whether the problem is the redirection sign >
Plaform is Oracle 9.2 on Solaris but same problem occurs on AIX
Below is the code and the sql script I use to test.
Any thoughts?
------------------------------------------------------------------------------------------------
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "function_os_command" AS
import java.io.*;
import java.util.*;
public class function_os_command
{
public static int Run(String Command)
{
int rc = 0;
try
{
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(Command);
try {
rc = p.waitFor();
} catch (InterruptedException intexc) { rc = 2; }
} catch (Throwable t) { rc = 3; }
return(rc);
}
}
/
CREATE or REPLACE FUNCTION function_run_os_command(Command IN STRING)
RETURN NUMBER IS
LANGUAGE JAVA
NAME 'function_os_command.Run(java.lang.String) return integer';
/
sql script to test it
/* example call to unix function */
set serveroutput on
VARIABLE retcode NUMBER;
begin
--:retcode := function_run_os_command('/usr/bin/echo hello > /tmp/testecho');
:retcode := function_run_os_command('/usr/bin/touch /tmp/testecho');
dbms_output.put_line('retcode ' || :retcode);
end;
.
/
exit
|
|
|
|