0

Oracleデータベースに格納されているクリップボードからテキストを読み取るJavaクラスがあります。そのクラスを使用する関数を実行しようとすると、次のエラーが発生します。

select texttransfer
from dual;

ORA-29532:Java呼び出しがキャッチされないJava例外によって終了しました:oracle.aurora.awt.UnsupportedOperation:GUIはサポートされていません。

クラスコードは次のとおりです。

public String readClipboard() throws UnsupportedFlavorException, IOException
{
     String text = "";
     Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
     Transferable contents = clipboard.getContents(clipboard);
     text = (String)(contents.getTransferData(DataFlavor.stringFlavor));    

   return text;
}

public static String world()
{
    return "Hello world";
}

機能コード:

create or replace
FUNCTION TextTransfer RETURN VARCHAR2 AS 
LANGUAGE JAVA NAME 'TextTransfer.readClipboard() return java.lang.String';

ただし、メソッドworld()を呼び出すと、完全に実行されます。

ありがとうございました

4

3 に答える 3

1

oracle.aurora.awt.UnsupportedOperation: GUI not supported例外がすでに述べているように、これは不可能です。Oracleにはウィンドウシステムがないため、クリップボードにアクセスできません。

于 2012-11-26T12:19:56.283 に答える
1

Java ストアド プロシージャ (および pl/sql プロシージャ) はサーバー側で実行され、クライアントの GUI (クリップボード、画面、オーディオ システムなどを含む) にはアクセスできません。本当にサーバーOSのクリップボードを読みたいですか?

于 2012-11-26T17:38:13.923 に答える
0

以下は、 Oracleのドキュメントからの抜粋です。

Oracle-specific Peer implementation that throws an exception, oracle.aurora.awt.UnsupportedOperation, if you execute Java code on the Oracle9i server that attempts to materialize a user interface.

Oracle9i's lack of support for materializing user interfaces in the server means that we do not pass the Java 2 Compatibility Kit tests for java.awt, java.awt.manual, and java.applet

于 2012-11-26T12:28:41.613 に答える