2009-06-17 20 views
2

SHA1を計算するシンプルなJavaクラスがあります。これをOracleのPLSQLプロシージャから使用したいと考えています。続き 者からのアドバイス:Solaris上のOracleにJavaクラスをインストールする方法

:私はsha1.javaをコンパイル SHA1, SHA256, SHA512 in Oracle for free without using DBMS_CRYPTO (私の簡単なケースはunly SHA1を使用して、任意のjarファイルを必要とし、java.securityおよびjava.ioをインポートのみsha1.classから構成されていない)

javac -target 1.2 -source 1.2 sha1.java 

と私のWindowsのテスト環境でこのsha1.classをインストール:

012:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production 

は、残念ながら私はSolaris上でそれをインストールする必要があります

Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production 
With the Partitioning, OLAP and Oracle Data Mining options 
JServer Release 9.2.0.8.0 - Production 

私が試みたが、これらの試みはして失敗します。

c:\test>loadjava -thin -user ***** -resolve sha1.class 
Error while creating class sha1 
    ORA-29545: badly formed class:: User has attempted to load a class (sha1) into a restricted package. Permission can be granted using dbms_java 
.grant_permission(<user>, LoadClassInPackage... 

The following operations failed 
    class sha1: creation 
exiting : Failures occurred during processing 

EDITED

私はの.javaソースの代わりに、.classファイルにしようと、私は(ポーランド語から翻訳)しまいました::

c:\mn>loadjava -thin -user ****** -resolve sha1.java 
Error while creating sha1 
    ORA-06576: not a valid function or procedure name 

Error while computing shortname of sha1 
    ORA-06550: line 1, column 13: 
PLS-00201: must be declared 'DBMS_JAVA.SHORTNAME' must be declared 
ORA-06550: line 1, column 7: 
PL/SQL: Statement ignored 

The following operations failed 
    source sha1: creation 
exiting : Failures occurred during processing 

このクラスまたはソースをSolaris上のOracleにロードするにはどうすればよいですか?

+0

通常のユーザーまたはDBA権限を持つユーザーとしてロードしようとしましたか? –

答えて

1

DBMS_JAVA.grant_permissionパッケージを実行する必要があります(詳細はエラー・メッセージに記載されている必要があり、場合によってはデータベース・ファイル・システムのトレース・ファイルにも表示される)。

接続SYSとしておよびSQLインタフェースから:

begin 
dbms_java.grant_permission(........); 
end; 
1

あなたが権限を持っている場合は、私の勘はあなたのいずれかのJavaパッケージまたは小文字のクラス名でクラスを持っている必要が混乱していることですSolaris(クラス名は大文字で始まる大文字小文字の区別された環境)上の検証者。

代わりの

public class shai{ 

} 

は、パッケージおよび有効なクラス名でそれを試してみてください。

package com.company.Util 
public class Shai{ 

} 
+0

私もLinuxで試してみましたが、うまくいきました。私も.javaで試しました。source:Linuxでは動作しましたが、Solarisでは失敗しました。 –

関連する問題