This document summarizes an Oracle database expert's presentation on optimal use of Oracle Database 10g and 11g for modern application development. Some key points covered include how modern applications are distributed, global, and service-oriented; how new Oracle database features support cloud computing, analytics, and internationalization; and guidelines for developing applications that leverage the database while maintaining independence.
Handwritten Text Recognition for manuscripts and early printed texts
Modern Database Development Oow2008 Lucas Jellema
1. Optimal Use of Oracle Database 10g and Oracle Database 11g for Modern Application Development Lucas Jellema AMIS, The Netherlands Oracle Open World, San Francisco September 2008
2. What is Modern ? SOA (operational) Analytics event XML SAAS S-Ox/Audit Service MultiMedia Tera Byte 24/7 Global Asynchronous Fuzzy I18n (internationalization) Business Rules Data Integrity Share/Collaboration Enterprise 2.0 Message OO Decoupling Security Personalization Scalability B2B
20. SAAS – MultiOrg - Authorization J(2)EE Application Server A B C Customer C Customer B Customer C setClientIdentifier ORG USER Web Application blindly queries a table for ‘all’ records Based on User Identifier, (in current context) determine Organization Only return records associated with that organization
36. Fuzzy Search outcome with 3 criteria - Salary close to 1500 and within 1000-2000 - Hiredate 1982 (or less desirable) 1983 - Job is CLERK, or ANALYST or SALESMAN
42. Example UTL_HTTP code: processing response SET serveroutput ON SIZE 40000 DECLARE pieces utl_http.html_pieces; n number default 0; resp utl_http.resp; BEGIN pieces := utl_http.request_pieces ( url => 'www.someurl.com' , max_pieces => 9999 , proxy => null ); for i in 1..pieces.count loop loop exit when pieces(i) is null; dbms_output.put_line(substr(pieces(i),1,255)); pieces(i):= substr(pieces(i),256); END LOOP; end loop; END;
43.
44. Publish RSS as “view” inside database create view AMIS_WEBLOG_FEED as select title , link , author , to_date(substr(publication_date,6,20) ,'dd mon yyyy hh24:mi:ss') timest from xmltable ( XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS "dc") , 'for $i in //item return <Article>{$i/title}{$i/dc:creator} {$i/pubDate}{$i/link} </Article> ' passing httpuritype('http://technology.amis.nl/blog/?feed=rss2').getXML() COLUMNS title varchar2(100) path 'title' , link varchar2(100) path 'link' , author varchar2(100) path 'dc:creator' , publication_date varchar2(100) path 'pubDate' )
45. Publish RSS as “view” inside database create view AMIS_WEBLOG_FEED as select title , link , author , to_date(substr(publication_date,6,20) ,'dd mon yyyy hh24:mi:ss') timest from xmltable ( XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS "dc") , 'for $i in //item return <Article>{$i/title}{$i/dc:creator} {$i/pubDate}{$i/link} </Article> ' passing httpuritype('http://technology.amis.nl/blog/?feed=rss2').getXML() COLUMNS title varchar2(100) path 'title' , link varchar2(100) path 'link' , author varchar2(100) path 'dc:creator' , publication_date varchar2(100) path 'pubDate' )
62. Create XML Resource DECLARE CURSOR xmlcur IS SELECT xmlelement("EMPHISTORY", ... l_xml_dir VARCHAR2(30) := '/public/hrmData'; l_doc_name VARCHAR2(30) := 'EmpChangeHistory.xml'; l_emp xmltype; l_res boolean BEGIN IF dbms_xdb.CreateFolder(l_xml_dir) THEN ... some ACL setting up END IF; open xmlcur; fetch xmlcur into l_emp; close xmlcur; l_res := dbms_xdb.createResource ( abspath=> l_xml_dir||l_doc_name , data=> l_emp ); COMMIT; end;
This presentation goes into the many--relatively unknown--features in the recent Oracle Database releases that can help complex Web application development. You can do so much more in the database than most Java developers realize. The session shows some useful tricks for leveraging the database, such as view and IOT, PL/SQL collections and table function/MULTISET, application context, factored (inline) queries, outer joins.