sql >> Database teknologi >  >> RDS >> Oracle

Sådan bruger du google translate URL i Oracle plsql

Vi kender alle google translate, som kan hjælpe med at oversætte fra et sprog til et andet.

Vi vil undersøge muligheden for at bruge Google-funktionalitet i Oracle plsql i Oracle-databasen for at få oversættelsen udført.

  1. Først skal vi oprette en netværksadgangsliste, som kræves fra 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) Næste google   URL https://translate.google.com/ er https, så vi er nødt til at oprette en oracle wallet for at gemme et offentligt certifikat for at få adgang til det

Download Googles offentlige certifikat ved hjælp af nedenstående procedure

a) Den nemmeste måde at gøre dette på er at bruge en browser. Eksemplet nedenfor bruger IE-browseren.

Brug browseren til at gå til den URL, du forsøger at få adgang til fra PL/SQL. I dette tilfælde  https://translate.google.com/ Klik på låseikonet i URL-linjen for at få vist webstedets identifikation  og klik på fanen "se certifikat".

Klik på linket "Certifikatoplysninger", og klik på fanen "Certificeringssti" i den resulterende dialogboks.

For rodnoden i "Certificeringsstien" skal du markere noden og klikke på knappen "Se certifikat". I den resulterende dialog skal du klikke på fanen "Detaljer" og klikke på knappen "Kopier til fil..." for at gemme certifikatoplysningerne.

Gør følgende i den resulterende guide.

  • Klik på knappen "Næste" på velkomstskærmen.
  • Vælg muligheden "Base-64-kodet X.509 (.CER)", og klik på knappen "Næste". Andre formater virker, men jeg har fundet, at dette er det mest konsekvente.
  • Indtast et passende filnavn, og klik på knappen "Næste".
  • Klik på knappen "Udfør".

Vigtig bemærkning:På IE kan vi se Kopier til fil som deaktiveret. Hvis det er tilfældet, start venligst IE som administrator, og du vil se det som aktiveret

3)  Opret Oracle wallet og importer dette certifikat til den

$orapki tegnebog oprette -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 :Version 11.2.0.4.0 – Produktion
Copyright (c) 2004 , 2013, Oracle og/eller dets tilknyttede virksomheder. Alle rettigheder forbeholdes

4) Dernæst skal vi til den gode oversættelses-URL gennem sql eller plsql for at oversætte tekst

$ sqlplus scott/toger

SQL*Plus:Release 11.2.0.4.0 Produktion mandag 15. sep. 15:14:32 2014

Copyright (c) 1982, 2013, Oracle. Alle rettigheder forbeholdes.

Forbundet til:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit-produktion
Med mulighederne for partitionering, automatisk lagerstyring, OLAP, Data Mining
og Real Application Testing

SQL> sæt define off
SQL> kolonne spansk format A20
SQL> med t som (
2 vælg 'fish' txt fra dual union alle
vælg 'dog' txt fra dual union alle 3
4 vælg 'cat' txt fra dual
5 )
vælg txt engelsk,
6 7 regexp_substr(tr,']*>(.*)',1,1,'i',1) spansk
8 fra (
9 vælg txt,
10 httpuritype('http://translate.google.com/?hl=da&layout=1&eotf=1&sl=da&tl=es&text='||utl_url.escape(txt)||'#').getclob() tr
11 fra t
12 )
13 /
FEJL:
ORA-29273:HTTP-anmodning mislykkedes
ORA-06512:ved "SYS.UTL_HTTP" , linje 1817
ORA-29024:Certifikatvalideringsfejl
ORA-06512:på "SYS.HTTPURITYPE", linje 34

Så det vil ikke fungere sådan her. vi skal indstille oracle wallet, før vi kalder denne procedure

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 /

ENGELSK SPANSK
—— ————
fiskestykker
hund perro
kat kat

Håber du kan lide disse trin til Sådan bruger du google translate URL i Oracle plsql

Relaterede artikler
Virtuelt indeks i Oracle:Hvad er virtuelt indeks i Oracle? Anvendelser, begrænsning, fordel og hvordan man bruger til at kontrollere forklare plan i Oracle-database, Skjult parameter _USE_NOSEGMENT_INDEXES
Oracle Opret tabel:Tabeller er den grundlæggende enhed for datalagring i en Oracle-database. vi dækker, hvordan man bruger Oracle create table-kommando at oprette tabel med fremmednøgle /primær nøgle
Oracle PLSQL-tabeller:Tjek dette indlæg for en detaljeret beskrivelse af PLSQL-tabeller. Hvordan man manipulerer det og arbejder på det i Oracle PLSQL-blok og fordele
slet duplikerede rækker i Oracle:Tips og måder til, hvordan du sletter duplikerede rækker fra Oracle-tabellen. Forskellige muligheder er givet for at slette de duplikerede rækker uden problemer
approx_count_distinct
Oracle Date Functions :Tjek dette indlæg for oracle-datofunktioner, oracle-datoforskel i år,oracle-datoforskel i dage, oracle-datoforskel i måneder.


  1. Sådan fungerer Sind() i PostgreSQL

  2. SQL DROP DATABASE Syntaks – Listet efter DBMS

  3. Sådan beregnes glidende gennemsnit i rødforskydning

  4. Hvordan IFNULL() virker i MariaDB