sql >> Database >  >> RDS >> Oracle

Hoe google translate URL te gebruiken in Oracle plsql

We kennen allemaal Google Translate, dat kan helpen bij het vertalen van de ene taal naar de andere.

We zullen de mogelijkheid onderzoeken om de Google-functionaliteit in Oracle plsql in de Oracle-database te gebruiken om de vertaling gedaan te krijgen.

  1. Eerst moeten we een netwerktoegangslijst maken die vereist is voor Oracle 11g
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) De volgende Google   URL https://translate.google.com/ is https, dus we moeten een Oracle-portemonnee maken om een ​​openbaar certificaat op te slaan om toegang te krijgen

Download openbaar Google-certificaat met behulp van onderstaande procedure

a) De eenvoudigste manier om dit te doen is door een browser te gebruiken. In het onderstaande voorbeeld wordt de IE-browser gebruikt.

Ga met de browser naar de URL die u probeert te openen vanuit PL/SQL. In dit geval  https://translate.google.com/ Klik op het slotpictogram in de URL-balk om de website-identificatie weer te geven en klik op het tabblad 'certificaat bekijken'.

Klik op de link 'Certificaatinformatie' en klik op het tabblad 'Certificatiepad' in het resulterende dialoogvenster.

Markeer voor het rootknooppunt in het "Certificatiepad" het knooppunt en klik op de knop "Certificaat bekijken". Klik in het resulterende dialoogvenster op het tabblad "Details" en klik op de knop "Kopiëren naar bestand..." om de certificaatinformatie op te slaan.

Doe het volgende in de resulterende wizard.

  • Klik op de knop "Volgende" in het welkomstscherm.
  • Selecteer de optie "Base-64 gecodeerde X.509 (.CER)" en klik op de knop "Volgende". Andere formaten werken, maar ik heb ontdekt dat deze het meest consistent is.
  • Voer een geschikte bestandsnaam in en klik op de knop "Volgende".
  • Klik op de knop "Voltooien".

Belangrijke opmerking:in IE zien we mogelijk Kopiëren naar bestand als uitgeschakeld. Als dit het geval is, start IE dan als beheerder en u zult dat zien als ingeschakeld

3)  Maak een Oracle-portemonnee en importeer dit certificaat erin

$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:versie 11.2.0.4.0 – Productie
Copyright (c) 2004 , 2013, Oracle en/of zijn gelieerde ondernemingen. Alle rechten voorbehouden

4) Vervolgens hebben we de goede vertaal-URL nodig via sql of plsql om tekst te vertalen

$ sqlplus scott/toger

SQL*Plus:release 11.2.0.4.0 productie op ma 15 sep 15:14:32 2014

Copyright (c) 1982, 2013, Oracle. Alle rechten voorbehouden.

Verbonden met:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64-bits productie
Met de opties voor partitionering, automatisch opslagbeheer, OLAP, datamining
en Real Application Testing

SQL> stel definieer uit
SQL> kolom spaans formaat A20
SQL> met t as (
2 selecteer 'fish' txt van dual union all
selecteer 'dog' txt van dual union all 3
4 selecteer 'cat' txt van dual
5 )
select txt english,
6 7 regexp_substr(tr,']*>(.*)',1,1,'i',1) spaans
8 van (
9 selecteer 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 van t
12 )
13 /
ERROR:
ORA-29273:HTTP-verzoek mislukt
ORA-06512:bij “SYS.UTL_HTTP” , regel 1817
ORA-29024:Certificaatvalidatie mislukt
ORA-06512:bij "SYS.HTTPURITYPE", regel 34

Dit zal dus niet zo werken. we moeten de orakel-portemonnee instellen voordat we deze procedure aanroepen

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 /

ENGELS SPAANS
—— ————
visvissen
hond perro
kat kat

Ik hoop dat je deze stappen leuk vindt voor het gebruik van google translate URL in Oracle plsql

Gerelateerde artikelen
Virtuele index in Oracle :wat is virtuele index in Oracle? Gebruik, beperking, voordeel en hoe te gebruiken om het plan uit te leggen in de Oracle-database, verborgen parameter _USE_NOSEGMENT_INDEXES
Oracle Create-tabel:tabellen zijn de basiseenheid van gegevensopslag in een Oracle-database. om een ​​tabel te maken met een externe sleutel /primaire sleutel
Oracle PLSQL-tabellen:bekijk dit bericht voor de gedetailleerde beschrijving van PLSQL-tabellen. Hoe het te manipuleren en eraan te werken in Oracle PLSQL-blok en voordelen
dubbele rijen verwijderen in orakel:tips en manieren om dubbele rijen uit de orakeltabel te verwijderen. Er worden verschillende opties gegeven om de dubbele rijen zonder problemen te verwijderen
ongeveer_count_distinct
Oracle Date Functions:Bekijk dit bericht voor Oracle-datumfuncties, Oracle-datumverschil in jaren, Oracle-datumverschil in dagen, Oracle-datumverschil in maanden.


  1. Selecteer het aantal rijen in een andere tabel in een Postgres SELECT-instructie

  2. Fout bij het installeren van psycopg2==2.6.2

  3. De beste manier om MySQL te hosten op Azure Cloud

  4. Android ListView:hoe databasequery's in bindView() vermijden? Moet een tot veel relatiegegevens ophalen