简体   繁体   English

如何从oracle的Java代码获取输出到oracle控制台?

[英]How to get output into oracle console from java code of oracle?

Please check Java code of Oracle. 请检查Oracle的Java代码。 I like to get the println() output into oracle console like DBMS_OUTPUT.PUT_LINE(). 我喜欢将println()输出输出到像DBMS_OUTPUT.PUT_LINE()这样的Oracle控制台中。

I have also created a function/procedure (without return in java) to call the java function. 我还创建了一个函数/过程(在Java中没有返回值)来调用Java函数。 it executed fine and return the value (for function), BUT don't print anything into Oracle console (ServerOutput). 它执行得很好并返回值(用于函数),但不要在Oracle控制台(ServerOutput)中打印任何内容。

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "Azam/Azam_Test" as package Azam;

import java.lang.*;
public class Azam_Test {

    public static String Azam_Test_Print(String testString) {
      System.out.println(testString); // want this output into ORACLE console
      return testString;
    }
}

Documentation DBMS_JAVA and procedure DBMS_JAVA.SET_OUTPUT(2000000) 文档DBMS_JAVA和过程DBMS_JAVA.SET_OUTPUT(2000000)

Check also DBMS_JAVA.SET_OUTPUT_TO_SQL , it is more useful 还要检查DBMS_JAVA.SET_OUTPUT_TO_SQL ,它更有用

Here's a working full script. 这是一个有效的完整脚本。

SQL> SET SERVEROUTPUT ON
SQL> CALL dbms_java.set_output(2000);

Call completed.

SQL> 
SQL> CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "MyOutput" as
  2  
  3  import java.lang.*;
  4  public class MyOutput {
  5  
  6      public static String print(String testString) {
  7        System.out.println(testString); // want this output into ORACLE console
  8        return testString;
  9      }
 10  }
 11  /

Java Source MyOutput created

SQL> 
SQL> create or replace procedure Test_Output(testString in varchar2)
  2  as LANGUAGE JAVA
  3  NAME 'MyOutput.print(java.lang.String)';
  4  /

Procedure TEST_OUTPUT compiled

SQL> 
SQL> exec Test_Output('Hello');
Hello


PL/SQL procedure successfully completed.

SQL> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM