sql >> データベース >  >> RDS >> Oracle

OracleplsqlでgoogletranslateURLを使用する方法

    ある言語から別の言語への翻訳に役立つGoogle翻訳は誰もが知っています。

    翻訳を実行するために、OracleデータベースのOraclePLSQLでGoogle機能を使用するオプションを検討します。

    1. 最初に、Oracle11gに必要なネットワークアクセスリストを作成する必要があります
    BEGIN
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
    acl => 'google_translatorapi.xml',
    description => 'Google Translator Access',
    principal => 'SCOTT',
    is_grant => true,
    privilege => 'connect'
    );
    DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
    acl => 'google_translatorapi.xml',
    principal => 'SCOTT',
    is_grant => true,
    privilege => 'resolve'
    );
    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
    acl => 'google_translator.xml',
    host => 'translate.google.com'
    );
    COMMIT;
    END;
    /

    2)次のgoogle URL https://translate.google.com/はhttpsなので、アクセスするための公開証明書を保存するOracleウォレットを作成する必要があります

    以下の手順を使用してGoogle公開証明書をダウンロードします

    a)これを行う最も簡単な方法は、ブラウザを使用することです。以下の例では、IEブラウザを使用しています。

    ブラウザを使用して、PL/SQLからアクセスしようとしているURLに移動します。この場合、https://translate.google.com/ URLバーの鍵のアイコンをクリックしてウェブサイトIDを表示し、[証明書の表示]タブをクリックします。

    [証明書情報]リンクをクリックし、表示されるダイアログの[証明書パス]タブをクリックします。

    「証明書パス」のルートノードについて、ノードを強調表示し、「証明書の表示」ボタンをクリックします。表示されるダイアログで、[詳細]タブをクリックし、[ファイルにコピー...]ボタンをクリックして、証明書情報を保存します。

    作成されたウィザードで、次の手順を実行します。

    • ようこそ画面の[次へ]ボタンをクリックします。
    • 「Base-64エンコードX.509(.CER)」オプションを選択し、「次へ」ボタンをクリックします。他の形式でも機能しますが、これが最も一貫性があることがわかりました。
    • 適切なファイル名を入力し、[次へ]ボタンをクリックします。
    • [完了]ボタンをクリックします。

    重要な注意:IEでは、[ファイルにコピー]が無効になっていると表示される場合があります。その場合は、IEを管理者として起動してください。有効になっていることがわかります

    3)Oracleウォレットを作成し、この証明書をインポートします

    $ orapki wallet create -wallet / home / oracle -pwd ora1_test

    $ orapki wallet add -wallet / home / oracle -trusted_cert -cert /home/oracle/g1.cer -pwd ora1_test
    Oracle PKI Tool:バージョン11.2.0.4.0 –本番
    著作権(c)2004 、2013年、Oracleおよび/またはその関連会社。無断転載禁止

    4)次に、テキストを翻訳するためにsqlまたはplsqlを介してURLを適切に翻訳する必要があります

    $ sqlplus scott / toger

    SQL * Plus:リリース11.2.0.4.02014年9月15日月曜日15:14:32の本番

    Copyright(c)1982、2013、Oracle。無断転載を禁じます。

    接続先:
    Oracle Database 11g EnterpriseEditionリリース11.2.0.4.0– 64ビット本番
    パーティショニング、自動ストレージ管理、OLAP、データマイニング
    および実際のアプリケーションテストオプション

    SQL> set define off
    SQL> column spanish format A20
    SQL> with t as(
    2 select'fish' txt from dual union all
    select'dog' txt from dual union all 3
    4 select'cat' txt from dual
    5)
    select txt english、
    6 7 regexp_substr(tr、' ] *>(。*) '、1,1、' i'、1)spanish
    8 from(
    9 select txt、
    10 httpuritype('http://translate.google.com/?hl=en&layout=1&eotf=1&sl=en&tl=es&text=' || utl_url.escape(txt)||'#')。getclob()tr
    11 from t
    12)
    13 /
    エラー:
    ORA-29273:HTTPリクエストが失敗しました
    ORA-06512:「SYS.UTL_HTTP」で、1817行目
    ORA-29024:証明書の検証に失敗しました
    ORA-06512:「SYS.HTTPURITYPE」の34行目

    したがって、これはこのようには機能しません。このプロシージャを呼び出す前に、オラクルウォレットを設定する必要があります

    SQL> exec UTL_HTTP.SET_WALLET ('file:/home/oracle/','ora1_test');
    PL/SQL procedure successfully completed.
    
    SQL> set define off
    SQL> column spanish format A20
    SQL> with t as (
    2 select 'fish' txt from dual union all
    3 select 'dog' txt from dual union all
    4 select 'cat' txt from dual
    )
    5 6 select txt english,
    7 regexp_substr(tr,'<span id=result_box class="short_text"><span[^>]>(.)</span></span>',1,1,'i',1) spanish
    8 from (
    9 select txt,
    10 httpuritype('http://translate.google.com/?hl=en&layout=1&eotf=1&sl=en&tl=es&text='||utl_url.escape(txt)||'#').getclob() tr
    11 from t
    12 )
    13 /

    英語スペイン語
    -————
    魚の小片
    犬のペロ
    猫の猫

    OracleplsqlでのGoogle翻訳URLの使用方法に関するこれらの手順が気に入っていただければ幸いです

    関連記事
    Oracleの仮想インデックス:Oracleの仮想インデックスとは何ですか?用途、制限、利点、およびOracleデータベースのExplainPlanの確認方法、非表示パラメータ_USE_NOSEGMENT_INDEXES
    Oracle Create table:テーブルは、OracleDatabaseのデータストレージの基本単位です。Oraclecreatetableコマンドの使用方法について説明します。外部キー/プライマリキーを使用してテーブルを作成するには
    OraclePLSQLテーブル:PLSQLテーブルの詳細な説明については、この投稿を確認してください。OraclePLSQLブロックで操作および操作する方法と利点
    重複行を削除するOracleの場合:Oracleテーブルから重複行を削除する方法に関するヒントと方法。重複する行を問題なく削除するためのさまざまなオプションが用意されています
    approx_count_distinct
    Oracle日付関数:この投稿で、Oracle日付関数、Oracle日付の年数の違い、Oracle日付の日数の違い、Oracle日付の違いについて確認してください。


    1. pl/sqlプロシージャで変数を宣言するときの構文エラー

    2. 簡単なPHPSQLログインのトラブルシューティング

    3. SQL Server Management Studio(SSMS)でテンプレートを使用する方法-SQL Server/TSQLチュートリアルパート16

    4. MySQLで当月の1日と当日のどちらかを選択するにはどうすればよいですか?