|
Программирование >> Oracle
1764 Приложение А Выберите эту опцию, и появится следующее диалоговое окно; нажмите Select для выбора файла, содержащего сертификат. Используйте появляющееся стандартное диалоговое окно выбора файла для выбора только что сохраненного сертификата. В результате на экране вы должны получить примерно следующее: Теперь сохраните бумажник, щелкнув на соответствующей пиктограмме (желтая дискета) и попробуйте повторно выполнить пример: tkyte@TKYTE816> declare 2 l output long; Пакет UTL HTTP 1765 4 l url varchar2(255) default 5 https: trading.etrade.com/cgi-bin/gx.cgi/AppLogic%2bHome; 7 l wallet path varchar2(255) default 8 file:C:\Documents and Settings\Thomas Kyte\ORACLE\WALLETS; 9 11 begin 12 l output := utl http.request 13 (url => l url, 14 proxy => www-proxy.us.oracle.com, 15 wallet path => l wallet path, 16 wallet password => oracle 17 ); 18 dbms output.put line(trim(substr(l output,1,255))); 19 end; 20 / <HTML> <HEAD> <META http-equiv= Content-Type content= text/html; charset=ISO-8859-l > <TITLE>E*TRADE</TITLE> <SCRIPT LANGUAGE= Javascript TYPE= text/javascript > <! -function mac comment(){ var agt=navigator.userAgent.toLowerCase(); var is mac PL/SQL procedure successfully completed. На этот раз все получилось. Теперь вы знаете, как использовать и формировать бумажник Oracle для работы по безопасному протоколу HTTPS. Реальное использование пакета UTL HTTP Итак, что еще можно сделать с помощью пакета UTL HTTP, кроме получения содержимого Web-страницы? Обычно его также используют, чтобы добиться возможности выполнения внешней программы из PL/SQL - как своего рода команды HOST. Поскольку практически любой Web-сервер может выполнять cgi-программы, а пакету UTL HTTP можно передавать адреса URL, можно обеспечить выполнение команд операционной системы из программ на языке PL/SQL, сконфигурировав соответствующие команды для выполнения как cgi-программы на Web-сервере. Я хочу настроить Web-сервер на IP-адресе 127.0.0.1 - интерфейсе закольцовыва-ния TCP/IP. Этот IP-адрес доступен только после физической регистрации на машине, где работает Web-сервер. Таким образом, я смогу создать cgi-программы для моих PL/ SQL-программ, которые никто другой выполнить не сможет, если только не взломает сервер - тогда у меня все равно будут серьезные проблемы. 1766 Приложение А Раньше я использовал этот метод для отправки сообщений электронной почты из PL/ SQL-процедур. Предположим, имеется сервер Oracle 8i без поддержки языка Java. Значит, нельзя использовать пакеты UTL TCP и UTL SMTP - оба они предполагают поддержку Java в базе данных. Итак, если нельзя использовать пакеты UTL SMTP и/ или UTL TCP, как послать сообщение по электронной почте? С помощью пакетов UTL HP и UTL FILE можно создать cgi-программу, которая будет получать один параметр через переменную среды QUERY STRING. Этот параметр будет представлять собой имя файла. Далее мы используем программу /usr/lib/sendmail для пос]лки этого файла (в среде Windows можно использовать для отправки электронной почты общедоступную утилиту blat, которую можно найти по адресу http: www.interiog.com/~tcharron/ blat.html). После необходимых настроек можно будет выполнить хост-команду с помощью вызова: results := utl http.request( http: 127.0.0.l/cgi-bin/smail?filename.text); Созданная cgi-программа smail будет возвращать Web-страницу, показывающую результат посылки. Я проанализирую содержимое переменной results, чтобы узнать, успешно ли отправлено сообщение. Полная реализация всего этого в ОС Unix может иметь вид: scott@ORA8I.WOKLD> create sequence sm seq 2 / Sequence created. scott@ORA8I.WORLD> create or replace procedure sm(p to in varchar2. 3 4 5 10 11 13 14 15 16 17 18 19 20 21 p from in p subject p body in varchar2, in varchar2 , varchar2) utl file.file type; varchar2(255); varchar2(2000); l output l filename l request begin select m sm seq.nextval into l filename from dual; .EMAIL. p to l output := (/tmp , utl file.fopen l filename. w, 32000); utl file.put line(l output, From: utl file.put line(l output, Subject: utl file.new line(l output); utl file.put line(l output, p body) ; utl file.new line(l output); utl file.put line(l output, .) ; utl file.fclose(l output); p from) ; p subject);
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |