oracle instant client 11.2 for x86
diff --git a/sdk/demo/occidemo.sql b/sdk/demo/occidemo.sql
new file mode 100755
index 0000000..6d1c6a8
--- /dev/null
+++ b/sdk/demo/occidemo.sql
@@ -0,0 +1,344 @@
+/* Copyright (c) 2002, 2004, Oracle. All rights reserved. */
+
+/*
+ NAME
+ occidemo.sql - Create OCCI demo objects
+
+ DESCRIPTION
+ SQL Script to create OCCI demo objects
+ Assumes HR schema is setup
+ Assumes system's account passwd to be manager
+ Execute this before any of the OCCI demos are run
+ To drop the objects created by this SQL use occidemod.sql
+
+ MODIFIED
+ sudsrini 03/06/03 - sudsrini_occi_10ir1_demos (include occidemod)
+ idcqe 03/13/01 - Created
+
+*/
+
+
+/* Drop objects before creating them */
+
+@occidemod.sql
+
+connect hr/hr
+
+CREATE TABLE elements (
+ element_name VARCHAR2(25),
+ molar_volume BINARY_FLOAT,
+ atomic_weight BINARY_DOUBLE
+);
+
+CREATE TABLE author_tab (
+ author_id NUMBER,
+ author_name VARCHAR2(25)
+);
+
+INSERT INTO author_tab (author_id, author_name) VALUES (333, 'JOE');
+INSERT INTO author_tab (author_id, author_name) VALUES (444, 'SMITH');
+
+CREATE OR REPLACE TYPE publ_address AS OBJECT (
+ street_no NUMBER,
+ city VARCHAR2(25)
+)
+/
+
+CREATE TABLE publisher_tab (
+ publisher_id NUMBER,
+ publisher_add publ_address
+);
+
+INSERT INTO publisher_tab (publisher_id, publisher_add) VALUES
+(11, publ_address (121, 'NEW YORK'));
+
+CREATE TABLE publ_address_tab OF publ_address;
+
+INSERT INTO publ_address_tab VALUES (22, 'BOSTON');
+INSERT INTO publ_address_tab VALUES (33, 'BUFFALO');
+INSERT INTO publ_address_tab VALUES (44, 'CALIFORNIA');
+
+
+CREATE OR REPLACE TYPE journal AS TABLE OF VARCHAR2(50)
+/
+CREATE TABLE journal_tab (jid NUMBER, jname journal)
+NESTED TABLE jname STORE AS journal_store;
+
+INSERT INTO journal_tab (jid, jname) VALUES (22, journal ('NATION', 'TIMES'));
+INSERT INTO journal_tab (jid, jname) VALUES (33, journal ('CRICKET', 'ALIVE'));
+
+CREATE OR REPLACE TYPE people_obj AS OBJECT (
+ ssn NUMBER,
+ name VARCHAR2(25)
+) NOT FINAL;
+/
+
+CREATE OR REPLACE TYPE librarian UNDER people_obj(
+ empno NUMBER,
+ sal NUMBER(7,2),
+ dob DATE,
+ photo BLOB
+)
+/
+
+CREATE TABLE librarian_tab OF librarian;
+
+INSERT INTO librarian_tab VALUES
+(101, 'DAVE', 1001, 10000, '12-Jan-1970', empty_blob());
+INSERT INTO librarian_tab VALUES
+(102, 'BOB', 1002, 12000, '17-Jan-1970', empty_blob());
+
+CREATE TABLE article_tab (
+ artid NUMBER,
+ artdesc VARCHAR2(4000),
+ artsummary LONG,
+ artfeedbk VARCHAR2(2000)
+);
+
+CREATE OR REPLACE PROCEDURE demo_proc (col1 IN NUMBER, col2 IN OUT VARCHAR2,
+col3 OUT CHAR) AS
+BEGIN
+ col2 := col1 || ' ' || col2 || ' ' || 'IN-OUT';
+ col3 := 'OUT';
+END;
+/
+
+CREATE OR REPLACE FUNCTION demo_fun (col1 IN NUMBER,
+col2 IN OUT VARCHAR2, col3 OUT CHAR) RETURN CHAR AS
+BEGIN
+ col2 := col1 || ' ' || col2 || ' ' || 'IN-OUT';
+ col3 := 'OUT';
+ RETURN 'abcd';
+END;
+/
+
+CREATE TABLE book (bookid NUMBER, summary VARCHAR2(4000));
+
+CREATE TABLE cover (c1 NUMBER(5), c2 VARCHAR2(20));
+
+DECLARE
+ch1 VARCHAR2(4000) := 'aa';
+ch2 VARCHAR2(4000):= '';
+nu NUMBER := 0;
+BEGIN
+ FOR nu IN 1..11 LOOP
+ ch2 := ch1 || ch2; ch1 := ch2;
+ END LOOP;
+ INSERT INTO book (bookid, summary) VALUES (11, ch1);
+END;
+/
+
+CREATE TYPE elecdoc_typ AS OBJECT
+ ( document_typ VARCHAR2(32)
+ , formatted_doc BLOB
+ ) ;
+/
+CREATE TYPE elecdoc_tab AS TABLE OF elecdoc_typ;
+/
+
+CREATE TYPE elheader_typ AS OBJECT
+ ( header_name VARCHAR2(256)
+ , creation_date DATE
+ , header_text VARCHAR2(1024)
+ , logo BLOB
+ );
+/
+
+CREATE TABLE electronic_media
+ ( product_id NUMBER(6)
+ , ad_id NUMBER(6)
+ , ad_composite BLOB
+ , ad_sourcetext CLOB
+ , ad_finaltext CLOB
+ , ad_fltextn NCLOB
+ , ad_elecdocs_ntab elecdoc_tab
+ , ad_photo BLOB
+ , ad_graphic BFILE
+ , ad_header elheader_typ
+ , press_release LONG
+ ) NESTED TABLE ad_elecdocs_ntab STORE AS elecdocs_nestedtab;
+CREATE UNIQUE INDEX printmedia_pk
+ ON electronic_media (product_id, ad_id);
+
+ALTER TABLE electronic_media
+ADD ( CONSTRAINT printmedia__pk
+ PRIMARY KEY (product_id, ad_id)
+ ) ;
+
+
+
+CREATE TYPE people_typ AS OBJECT
+(
+ name VARCHAR2(30),
+ ssn NUMBER,
+ dob DATE
+) not final;
+/
+
+CREATE TABLE people_tab OF people_typ;
+
+INSERT INTO people_tab VALUES (people_typ('john', 111, '01-Jan-1970'));
+INSERT INTO people_tab VALUES (people_typ('jill', 666, '06-Jan-1976'));
+
+CREATE TYPE student UNDER people_typ
+(
+ stud_id NUMBER,
+ teammate REF people_typ
+) NOT FINAL;
+/
+
+CREATE TABLE student_tab OF student;
+INSERT INTO student_tab VALUES ('jimmy',222,'02-Feb-1976',200,
+(SELECT REF(a) FROM people_tab a where name='john'));
+
+CREATE TYPE parttime_stud UNDER student
+(
+ course_id NUMBER,
+ partner REF student
+)NOT FINAL;
+/
+CREATE TABLE parttime_stud_tab OF parttime_stud;
+
+INSERT INTO parttime_stud_tab VALUES ('james',333,'03-Feb-1976',300,
+(SELECT REF(a) FROM people_tab a where name='john'),3000,
+(SELECT REF(a) FROM student_tab a));
+
+
+CREATE TYPE foreign_student UNDER parttime_stud
+(
+ country VARCHAR2(30),
+ leader REF parttime_stud
+);
+/
+CREATE TABLE foreign_student_tab OF foreign_student;
+
+COMMIT;
+
+
+/* OCCI AQ Objects */
+
+
+connect system/manager
+
+grant aq_administrator_role, aq_user_role to hr;
+grant execute on dbms_aq to hr;
+grant execute on dbms_aqadm to hr;
+
+BEGIN
+ dbms_aqadm.grant_system_privilege('ENQUEUE_ANY','hr',FALSE);
+ dbms_aqadm.grant_system_privilege('DEQUEUE_ANY','hr',FALSE);
+END;
+/
+
+connect hr/hr
+
+CREATE OR REPLACE TYPE hr_obj AS OBJECT
+(a1 NUMBER, a2 VARCHAR2(25));
+/
+
+BEGIN
+ dbms_aqadm.create_queue_table (
+ queue_table => 'hr.table01',
+ queue_payload_type => 'RAW',
+ comment => 'single-consumer',
+ multiple_consumers => false,
+ compatible => '8.1.0'
+);
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue (
+ queue_name => 'queue01',
+ queue_table=> 'hr.table01'
+);
+END;
+/
+BEGIN
+ dbms_aqadm.start_queue(queue_name => 'queue01');
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue_table (
+ queue_table => 'hr.table02',
+ queue_payload_type => 'SYS.ANYDATA',
+ comment => 'multi-consumer',
+ multiple_consumers => true,
+ compatible => '8.1.0'
+);
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue (
+ queue_name => 'queue02',
+ queue_table=> 'hr.table02'
+);
+END;
+/
+BEGIN
+ dbms_aqadm.start_queue(queue_name => 'queue02');
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue_table (
+ queue_table => 'hr.table03',
+ queue_payload_type => 'hr_obj',
+ comment => 'multi-consumer',
+ multiple_consumers => true,
+ compatible => '8.1.0'
+);
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue (
+ queue_name => 'queue03',
+ queue_table=> 'hr.table03'
+);
+END;
+/
+BEGIN
+ dbms_aqadm.start_queue(queue_name => 'queue03');
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue_table (
+ queue_table => 'hr.table04',
+ queue_payload_type => 'RAW',
+ comment => 'multiple-consumer',
+ multiple_consumers => true,
+ compatible => '8.1.0'
+);
+END;
+/
+
+BEGIN
+ dbms_aqadm.create_queue (
+ queue_name => 'queue04',
+ queue_table=> 'hr.table04'
+);
+END;
+/
+BEGIN
+ dbms_aqadm.start_queue(queue_name => 'queue04');
+END;
+/
+
+Rem Add default local subscribers to the queues
+
+BEGIN
+ dbms_aqadm.add_subscriber( queue_name=> 'queue03',
+ subscriber=> sys.aq$_agent('AGT1','hr.queue03', 0));
+END;
+/
+
+BEGIN
+ dbms_aqadm.add_subscriber( queue_name=> 'queue04',
+ subscriber=> sys.aq$_agent('AGT1','hr.queue04', 0));
+END;
+/
+