| 
		
			| 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
 
 
 
 
 
 
 |  
	|  |  | 
	|  |