C ервер Oracle Некоторые возможности интеграции. Сервер Oracle – некоторые возможности интеграции  Работа с COM- объектами на сервере  Формирование.

Slides:



Advertisements
Similar presentations
1.
Advertisements

Little Used, but Powerful Features with GP Cathy Fregelette, CPA, PMP Practice Manager BroadPoint Technologies September 20, 2012.
Native SQL, Agent-less access to Oracle, MS-SQL, MySQL, Excel & other data sources DB-Gate: IBM i Remote Database Access.
Пример реализации приложения Программа отправки и анализа SMS-сообщений (через с WEB-интерфейсом.
Remember to change the OUTLN password Urs Messerli Messerli Datenbanktechnik Gmbh
SQL Objects and PL/SQL. Who am I ?  Gary Myers  Oracle developer since 1994  Database Consultant with SMS M&T  Blogger since 2004 Now at blog.sydoracle.com.
Oracle 10g Express. Download Oracle 10g Express Oracle 10g Express Edition: – edition/overview/index.htmlhttp://
INTRODUCTION TO ORACLE Lynnwood Brown System Managers LLC Oracle High Availability Solutions RAC and Standby Database Copyright System Managers LLC 2008.
DB Alert Expert Copyright © 2000 SoftTree Technologies, Inc.
Tux2 Database The Architecture of Our System © Juhani Välimäki 2005.
.NET C RYSTAL R EPORTS …Vishal Kumar.. I NTRODUCTION T O C RYSTAL REPORT :- For creating interactive reports that can be integrated into a wide range.
How to Use FT6 for Filling Data ?
Oracle SQL*plus John Ortiz. Lecture 10SQL: Overview2 Overview  SQL: Structured Query Language, pronounced S. Q. L. or sequel.  A standard language for.
AR Invoices To Customers Presented by Chitra Kanakaraj.
Week 5 – Chap. 5 Data Transfer DBAs often must transfer data to and from text files, Excel spreadsheets, Access, Oracle or other SQL Server databases This.
SQLite and the.NET Framework This PPT:
Accuplacer & Compass Download Application Bettsie Montero – Imperial Valley College.
Today’s Agenda Chapter 12 Admin Tasks Chapter 13 Automating Admin Tasks.
Session Title: Using SQL and PL/SQL for Queries and Reporting Presented By: Stephen Frederic Institution: IHL September 16, 2013.
Batak Programming Language
CSCI 6962: Server-side Design and Programming
Oracle8 JDBC Drivers Section 2. Common Features of Oracle JDBC Drivers The server-side and client-side Oracle JDBC drivers provide the same basic functionality.
Oracle Application Express (Oracle APEX), formerly called HTML DB, is a Free rapid web application development tool for the Oracle database.
1 Overview of Databases. 2 Content Databases Example: Access Structure Query language (SQL)
Interactive report designer ADO.Net MS SQL Server OleDB ODBC Oracle SQL MySQL Firebird SQL Postgre SQL XML Business Objects What types of data does Stimulsoft.
SQL pepper. Why SQL File I/O is a great deal of code Optimal file organization and indexing is critical and a great deal of code and theory implementation.
Session Title: Using SQL and PL/SQL for Queries and Reporting Presented By: Stephen Frederic Institution: IHL September 16, 2014.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Advanced SQL: Cursors & Stored Procedures
MS Access. Access is a DBMS/RDMS DBMS = Database Management System RDMS = Relational Database Management System.
January 22, 2010 TCS Public L1 & L2 Handover to BSNL.
COSC 3480 News and Activities Spring COSC 3480 Lab, Christoph F. Eick 2 COSC 3480 Tentative Schedule  Exam1: Tu., Feb. 28, 2006  Exam2: Th., April.
1 All Powder Board and Ski Oracle 9i Workbook Chapter 10: Distributed Databases Jerry Post Copyright © 2003.
3 Copyright © 2004, Oracle. All rights reserved. Controlling Access to the Oracle Listener.
COSC 3480 Projects, Christoph F. Eick 1 Lab COSC 3480 Fall 2000.
Visual Programing SQL Overview Section 1.
SQL Overview Structured Query Language. Description  When Codd first described the theory of relational databases, he asserted that there should be a.
Task #1 Create a relational database on computers in computer classroom 308, using MySQL server and any client. Create the same database, using MS Access.
Integrated Mobile Marketing Platform Emergic mConnector Integrated -Mobile Marketing Platform Presented By: Sales Person Name ID: Mobile:
External Routines Oracle Database PL/SQL 10g Programming Chapter 12.
Financial Information Management Business Intelligence Putting VBA & SQL To Work.
SoCal GPUG Meeting – February Agenda Installation and Configuration Standard Features Standard vs. eConnect Adapters Alternatives Resources Integration.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
CS320 Web and Internet Programming SQL and MySQL Chengyu Sun California State University, Los Angeles.
Thomas Bowen Jerrod Mirabal Derek Smith. Application Wizard-like ASP.NET web application running on.NET Framework 3.0 View output as tables Charts Output.
IFET COLLEGE OF ENGINEERING DEPARTMENT OF ECE Web Based Tool Management System Presented by Pravina.R Final year/ECE Guided by Mr.M.Arul Pugazhendhi.
Douglas J. Partch, Jr. – Lead Nerd Protecting SQL Code Through DB2 LUW Obfuscation.
Data Control In this presentation… –databases supported –inserting a data control –data control properties –using the data control.
E Copyright © 2006, Oracle. All rights reserved. Using SQL Developer.
Data generators by Jan Kincl. Data Generators - Jan Kincl2 Outline Introduction Introduction Main features Main features MySQL Data Generators MySQL Data.
Powerpoint Templates Page 1 Powerpoint Templates Oracle Certified Specialist 1Z0-051 Exam Oracle PL/SQL Developer Certified Associate.
C LANGUAGE MULITPLE CHOICE QUESTION SET-2
Automating with Job Streams
1Z0-071 Exam : Oracle Database 12c SQL
Pass Oracle 1Z0-061 Exam Oracle PL/SQL Developer Certified Associate
Basic Work-Flow with SQL Server Standard
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
Seamless E2E Automation on Interdependent Systems
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
© 2014, Mike Murach & Associates, Inc.
Presentation transcript:

C ервер Oracle Некоторые возможности интеграции

Сервер Oracle – некоторые возможности интеграции  Работа с COM- объектами на сервере  Формирование документа MS-Excel  Формирование PDF документа  Как без COM?  Работа с функциями ОС сервера  Принципиальная схема работы  Пример выполнения команды ОС  Отправка (SMTP) с вложением

Работа с COM- объектами на сервере  Установка Oracle COM Automation Feature  Схема работы  Установка математического обеспечения  Конфигурирование служб Oracle Net  Настройка серверной части  Установка надстроек для работы с COM- серверами MS Word, MS Excel, MS Power Point, MAPI  Документация

СЕРВЕР Внешние проецессыОбласть процессов экземпляра БД Oracle Работа с COM- объектами на сервере – Схема работы Экземпляр БД Хранимые PL/SQL объекты Oracle Listener Обработчик RPC Oracle COM Feature Данные БД Внешние COM серверы COM/DCOM Oracle Net RPC

Работа с COM- объектами на сервере – Установка математического обеспечения

Работа с COM- объектами на сервере – Конфигурирование служб Oracle Net LISTENER = (ADDRESS_LIST= … (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0) ) … ) LISTENER.ORA EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0)) (CONNECT_DATA = (SID = plsextproc))) ) TNSNAMES.ORA

Работа с COM- объектами на сервере – Настройка серверной части SQL> CONNECT \COM\COMWRAP.SQL Компиляция объектов Oracale COM Automation Feature

Работа с COM- объектами на сервере – Установка надстроек для работы с COM- серверами MS Word, MS Excel, MS Power Point, MAPI SQL> CONNECT \COM\DEMOS\EXCELSOL.SQL \COM\DEMOS\WORDSOL.SQL \COM\DEMOS\PPTDSOL.SQL \COM\DEMOS\MAPISOL.SQL Компиляция объектов надстроек для Excel, Word, PowerPoint, MAPI

Работа с COM- объектами на сервере - Документация  Oracle COM Automation Feature Developer's Guide   Oracle COM Automation PL/SQL Demos 

Работа с COM- объектами на сервере – Формирование документа MS-Excel declare N binary_integer := 2; I binary_integer; FILENAME varchar2(255); CELLINDEX varchar2(40); CELLCOLUMN varchar2(40); begin FILENAME := 'd:\excel'; I := ORDEXCEL.CREATEEXCELWORKSHEET(''); I := ORDEXCEL.INSERTDATA('A1', ' Номер ', 'BSTR'); I := ORDEXCEL.INSERTDATA('B1', ' Мнемокод ', 'BSTR'); I := ORDEXCEL.INSERTDATA('C1', ' Наименование ', 'BSTR'); I := ORDEXCEL.INSERTDATA('D1', ' Сумма ', 'BSTR'); for C1_REC in (select AG.AGNABBR, AG.AGNNAME from AGNLIST AG where ROWNUM <= 10) loop CELLCOLUMN := TO_CHAR(N); CELLINDEX := CONCAT('A', CELLCOLUMN); I := ORDEXCEL.INSERTDATA(CELLINDEX, N, 'I2'); CELLINDEX := CONCAT('B', CELLCOLUMN); I := ORDEXCEL.INSERTDATA(CELLINDEX, C1_REC.AGNABBR, 'BSTR'); CELLINDEX := CONCAT('C', CELLCOLUMN); I := ORDEXCEL.INSERTDATA(CELLINDEX, C1_REC.AGNNAME, 'BSTR'); CELLINDEX := CONCAT('D', CELLCOLUMN); I := ORDEXCEL.INSERTDATA(CELLINDEX, N, 'I2'); N := N + 1; end loop; I := ORDEXCEL.INSERTCHART(350, 200, 250, 250, 'D2:D15', 'xlPie'); select FILENAME||TO_CHAR(sysdate, 'HH24MISS') into FILENAME from DUAL; I := ORDEXCEL.SAVEEXCELFILE(FILENAME); I := ORDEXCEL.EXITEXCEL(); end;

Работа с COM- объектами на сервере – Формирование документа PDF  Apache FOP (Formatting Objects Processor) + XSL Formatting Objects (XSL-FO)   PL/PDF 

Работа с COM- объектами на сервере – Как без COM?  XML - XLS 

Работа с COM- объектами на сервере – Как без COM?  POI-HSSF (Poor Obfuscation Implementation - Horrible SpreadSheet Format) и POI-XSSF (Poor Obfuscation Implementation – XML SpreadSheet Format)   Java Excel API 

Работа с функциями ОС сервера – Принципиальная схема работы СЕРВЕР Внешние проецессыОбласть процессов экземпляра БД Oracle Экземпляр БД Oracle JVM PL/SQL- обёртка Java Class ОС Прикладные PL/SQL объекты

Работа с функциями ОС сервера – Пример выполнения команды ОС create or replace and compile java source named "OsUtils" as import java.io.IOException; import java.io.InputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; class StreamGobbler extends Thread { InputStream is; String type; StreamGobbler (InputStream is, String type) { this.is = is; this.type = type; } public void run () { try { InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) OsUtils.result.append(line).append("\n"); } catch (IOException ioe) {ioe.printStackTrace();} } public class OsUtils { public static StringBuffer result; public static int runCommand (String command) throws Throwable { result = new StringBuffer(); Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command); StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR"); StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT"); errorGobbler.start(); outputGobbler.start(); proc.waitFor(); return proc.exitValue(); } 1. Java Class, выполняющий команду операционной системы Runtime.getRuntime() Runtime.exec( ) runCommand Экспортируемая функция интерфейса класса

Работа с функциями ОС сервера – Пример выполнения команды ОС create or replace function udo_f_run_os_command (p_cmd in varchar2) return number as language java name 'OsUtils.runCommand (java.lang.String) return int'; 2. PL/SQL- обёртка declare result number; begin result := udo_f_run_os_command('C:\WINNT\system32\cmd.exe /c dir'); end; 3. Использование для прикладных целей exec dbms_java.grant_permission(user, 'SYS:java.io.FilePermission', 'C:\WINNT\system32\cmd.exe', 'execute' ); 4. Назначение дополнительных прав доступа

Отправка (SMTP) с вложением conn:=utl_smtp.open_connection(MAIL_SERVER, MAIL_PORT); utl_smtp.ehlo(conn, MAIL_SERVER); utl_smtp.command(conn, 'AUTH LOGIN'); utl_smtp.command(conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(MAIL_USER)))); utl_smtp.command(conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(MAIL_USER_PASS)))); utl_smtp.mail(conn, MAIL_SENDER); utl_smtp.open_data(conn); write_mime_header(conn, 'To', MAIL_RECIVIER); write_mime_header(conn, 'Subject', MAIL_SUBJECT); write_mime_header(conn, 'Sender', MAIL_SENDER); write_mime_header(conn, 'From', MAIL_SENDER); write_mime_header(conn, 'Content-Language', 'ru'); write_mime_header(conn, 'Content-Type', 'text/plain; charset=Windows-1251'); write_mime_header(conn, 'Content-Transfer-Encoding', '8bit'); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(MESSAGE)); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_data(v_Mail_Conn, '--'|| MAIL_SEPARATOR || utl_tcp.crlf ); utl_smtp.write_data(conn, 'Content-Type: '||ATT_MIME_TYPE||';'|| utl_tcp.crlf ); utl_smtp.write_data(conn, ' name="'||ATT_NAME||'"'|| crlf ); utl_smtp.write_data(conn, 'Content-Transfer-Encoding: base64'|| utl_tcp.crlf ); utl_smtp.write_data(conn, 'Content-Disposition: attachment;'|| utl_tcp.crlf ); utl_smtp.write_data(conn, ' filename="'||ATT_FILE_NAME||'"' || utl_tcp.crlf); utl_smtp.write_data(conn, crlf ); ps:=1; LOOP BEGIN dbms_lob.read(ATT_BLOB_DATA, 48, ps, att_raw_data); ps := ps + 48; utl_smtp.write_raw_data(conn, utl_encode.base64_encode(att_raw_data)); EXCEPTION WHEN no_data_found THEN EXIT; END; END LOOP; utl_smtp.write_data(conn, '--' || MAIL_SEPARATOR || '--'); utl_smtp.write_data(conn, crlf ); utl_smtp.write_data(conn, crlf ); utl_smtp.close_data(conn); utl_smtp.rset(conn); utl_smtp.quit(conn);

Примеры применения 1. Эмуляция сервера печати для формирования “ тяжелых ” отчетов ( Пользовательская процедура Парус 8 + DBMS_JOB, DB Scheduler + ORDExcel + PrNotifier) create procedure UDO_P_START_PRINTING as NJOB binary_integer; begin dbms_job.submit(job => NJOB,what => 'begin UDO_P_DO_PRINTING; end;'); end; create procedure UDO_P_DO_PRINTING as begin I := ORDEXCEL.CREATEEXCELWORKSHEET(''); I := ORDEXCEL.INSERTDATA('A1', ' Номер ', 'BSTR'); I := ORDEXCEL.SAVEEXCELFILE(FILENAME); I := ORDEXCEL.EXITEXCEL();... P_NOTQUEUE_BASE_INSERT(nMSG_ID => GEN_ID,nADDR_COMPANY => GET_SESSION_COMPANY,sADDR_USER =>... ); end;

Примеры применения 2. Автоматическая рассылка отчетности (DBMS_JOB, DB Scheduler + ORDExcel + UTL_SMTP) 3. Ускорение печати “ тяжелых отчетов ” (XML – XLS, ORDExcel) 4. Реализация конвертеров ( Исполнение команд ОС (UDO_F_RUN_OS_COMMAND) + UTL_FILE + PL/SQL + Парус 8 API)

Спасибо Ваши вопросы