Microsoft Word - 430_15_Developing_Stored_Procedure.doc



Similar documents
0315_F1_8iJDBC-SQLJ.PDF

ストラドプロシージャの呼び出し方

9iAS_DEV.PDF

_02-4.ppt

データベース認識Webサービス

Oracle9i JDeveloperによるWebサービスの構築

Oracle9i Reportsのチューニング

BC4J...4 BC4J Association JSP BC4J JSP OC4J

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

_02_3.ppt

Oracle Lite Tutorial

日本オラクル株式会社

Oracle Forms Services R6i

Warehouse Builderにおける予測分析の使用

tkk0408nari

Microsoft Word - J doc

FileMaker 16 ODBC と JDBC ガイド

Oracle Application Server 10g Release 3(10.1.3)- アジャイル・エンタープライズ(俊敏な企業)のためのデータ・アクセス

J2EEとMicrosoft.NETの比較

PowerPoint -O80_REP.PDF

B2-Servlet-0112.PDF

FileMaker 15 ODBC と JDBC ガイド

FileMaker ODBC と JDBC ガイド

橡実践Oracle Objects for OLE

Oracle Locator Oracle Database 10g Standard Edition Standard Edition One Oracle Database 10g Release 1 Oracle Locator : Enterprise Edition Oracle Loca

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

Oracle Lite Tutorial

FileMaker ODBC and JDBC Guide

Oracle Lite Tutorial

C3印刷用.PDF

Oracle Identity Managementの概要およびアーキテクチャ

FileMaker ODBC and JDBC Guide

untitled

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL

Windowsユーザーの為のOracle Database セキュリティ入門

,,,,., C Java,,.,,.,., ,,.,, i

Oracle Developer Release 6i

Q&A集

Microsoft Word - J doc

自己管理型データベース: アプリケーションおよびSQLチューニング・ガイド

IBM Software Group DB2 Information Management Software DB2 V8 XML SQL/XML 2 XML XML UDF XMLExtender XML XML XMLCollection, XMLColumn XML UDF Informati

PL/SQLからのオペレーティング・システム・コマンドの実行

1,.,,,., RDBM, SQL. OSS,, SQL,,.

Microsoft Word - ACCESSINGO...

CAC

キャラクタ・セットの移行に関するベスト・プラクティス

Oracle Database 10gのOLAP Option

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

OOW_I06

Oracle XDK(10.1.2)の技術概要

Oracle Database 10gの新しいSQL機能

untitled

D1印刷用.PDF

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

早分かりS2Dao

Oracle DatabaseとIBM DB2 UDBの技術的比較: パフォーマンスを重視

Oracle8 Workgroup Server for Windows NTインストレーション・ガイド,リリース8.0.6

Oracle Database 10gのOracle Data Guard

Oracle XML DB によるスケーラビリティおよびパフォーマンス検証 - MML v.3.0

XML Consortium & XML Consortium 1 XML Consortium XML Consortium 2

新・明解Java入門

fiš„v3.dvi

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

untitled

Java updated

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Oracle Database 10gの新しいSQL性能: 正規表現、ネイティブ値、LOBパフォーマンスおよびその他の機能

ORACLEデータベース10G データ・ポンプ: 超高速データ移動ユーティリティの基盤

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

Oracle Change Management Pack, Oracle Diagnostics Pack, Oracle Tuning Packインストレーション・ガイド リリース2.2

Oracle Secure Enterprise Search 10gを使用したセキュアな検索

1. COBOL COBOL COBOL COBOL 2

Oracle9i

Oracle Real Application Clusters 10g Release 2: Microsoft SQL Server 2005との技術的比較

Java Platform Debugger Architecture Apache JServ Oracle JVM JPDA JVM Tomcat Oracle JVM... 7

K227 Java 2

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

新・明解Java入門

ユニット・テストの概要

052-XML04/fiÁ1-part3-’ÓŠ¹

Microsoft Word - J-jdev_dba_db_developers.doc

Oracle Spatial

領域サイズの見積方法

Visual Studio Oracle Database 11g アプリケーション開発入門

Oracle Enterprise Manager概説 リリース2.2

スライド 1

FileMaker Server Getting Started Guide

組織変更ライブラリ

FY01H2_SOHO_iAS

Oracle Database 10g Release 2を使用したデータベース・パフォーマンス

KWCR3.0 instration

CSV ToDo ToDo

untitled

DB12.1 Beta HandsOn Seminar

untitled

Gartner Day

Oracleコール・インタフェース for Windows スタート・ガイド リリース8.1.6

FileMaker Server 9 Getting Started Guide

Oracle Enterprise Manager 10g R2 Grid Control: データベース管理の新機能

橡CoreTechAS_OverView.PDF

Transcription:

Java Oracle 1998 11

Java 3 Java Web GUI Java Java Java Oracle Java Oracle8i Oracle / Oracle Java Virtual Machine VM CORBA Enterprise JavaBeans Oracle Java Java Java Oracle Oracle Java Virtual Machine Oracle 5 1 Java Java Oracle8i Java Virtual Machine 2 Oracle8i 3 Java Oracle8i Oracle Java Java 4 Java Structured Query Language SQL PL/SQL Java SQL PL/SQL Java 5 Java Oracle8i Java Virtual Machine Java Oracle 1

Java Java Java Java Java 3 Java Java Virtual Machine Java Java JavaBeans Enterprise JavaBeans Java 1 JavaBeans Java Java Web Java / / Java Java Oracle Oracle C C++ C C C++ - - Java Java Java Oracle 2

Java Java Java Java Java Java Java C Oracle8i Java Virtual Machine Java Oracle8i Java JavaSoft Java VM JDK Java JavaSoft Java VM VM Java Virtual Machine VM Oracle8i Sun Java Java VM Java Oracle8i Java Virtual Machine 24 Java Runtime Java Integrated Development Environment IDE Oracle Java Oracle 3

Oracle8i Net8 PL/SQL SQL IIOP ORB Java VM JDBC 1 Oracle8i Java Virtual Machine Java Oracle Java VM Oracle8i 1 Oracle Oracle8 Oracle8i Java Virtual Machine RDBMS Java 15 40 Oracle Multithreaded Server MTS 10,000 Oracle8i VM Oracle Java HTML XML Java Oracle8i Java Oracle Java Java Oracle 4

Oracle 8i Java Virtual Machine 2 Oracle8i Java Virtual Machine VM Java PL/SQL SQL PL/SQL SQL Oracle8i Java Java SQL PL/SQL SQL PL/SQL Oracle8i Java Virtual Machine 1 Oracle8i Java VM Java CORBA Enterprise JavaBeans 2 Application Programming Interface API CORBA Enterprise JavaBeans Oracle8i Oracle8i Java Virtual Machine PL/SQL SQL PL/SQL Java Oracle8i Java PL/SQL Java Java SQLJ SQLJ Java SQL C SQL Pro*C SQL SQLJ SQL Java 3 1 Java Java SQL Java SQL PL/SQL SQL DML 2 Java Oracle8i Oracle 5 Java 3 Oracle8 SQL Oracle8 PL/SQL C C++ Oracle8i Java Java Oracle 5

Java Oracle Java Virtual Machine Java Oracle Java Oracle8i Java 2 Java Oracle Java JavaSoft JDK Java Java.class Java Java Java Virtual Machine Java CLASSPATH Oracle8i Java Java Oracle8i Java VM Java Java.class Java.jarJava Java Java Java PL/SQL Java Java Java Java Java Java Java Java CLASSPATH RESOLVER RESOLVER SQL RESOLVER Java PL/SQL Java RESOLVER RESOLVER ((<match string> <schema name>)...) <march string> Java Java 1 <schema name> RESOLVER (( some.particular.class FRED) ( com.oracle.employee.* SCOTT) (* PUBLIC)) Java Oracle 6

Oracle8i Java Oracle8i Java Oracle8i Java Java Java 4 Java Java Java Oracle8i Java Oracle8i Java Integrated Development Environment IDE JDeveloper Java Java 'emp' 2 Java 'approve_raise' 'sal_grade'java Oracle 'approve_raise' 'sal_grade' Java SQL PL/SQL Java SQL // File: emp.java package com.oracle.employee; public class emp { public static String sal_grade (float current_sal) { if (current_sal > 0 && current_sal < 50000) return MTS ; if (current_sal >= 50000 && current_sal < 100000) return SMTS ; return Salary out of Range ; public static void approve_raise (float current_sal, float raise, float new_sal [ ]) { // new_sal is an array of size one to handle OUT parameters in Java. float percent_raise = (raise / current_sal) * 100; if (percent_raise > 15 percent_raise < 5) new_sal[0] = -1; else { new_sal[0] = current_sal + raise; Java Oracle 7

Java Java Java Java Java Java 3 Java Java 2 Java.class.jar Java Java Java 2 Oracle8i SQL*Plus CREATE JAVA... DDL Java Oracle8i LOB 2 Java Java com.oracle.employee.emp com/oracle/employee/emp Java 2 - - SQL> CREATE DIRECTORY bfile_dir as /home/user/com/oracle/employee ; - - CREATE JAVA CLASS... DDL Java - SQL> CREATE OR REPLACE JAVA CLASS USING BFILE (bfile_dir, emp.class ); - LOB - 1. Java emp.class LOB - 2. LOB Java - SQL> CREATE JAVA CLASS RESOLVER USING BLOB - > (SELECT ALOB FROM LOB_TABLE WHERE ID=123); - Oracle8i Java LOADJAVA Java LOADJAVA Java Java.class Java.jar 3 Java LOADJAVA Java create$java$lob$table Java.jar LOB BLOB CREATE JAVA... DDL BLOB Java Java Oracle 8

LOADJAVA Java RESOLVER Oracle LOADJAVA Java DROPJAVA LOADJAVA Java Oracle emp.class SCOTT tiger Java SID ORCL oudelsrv-1 RESOLVER employee.* SCOTT *PUBLIC LOADJAVA Java loadjava -user scott/tiger@oudelsrv-1:5521:orcl -r (("employee.*" SCOTT) (* PUBLIC)) emp.class - Java LOADJAVA Oracle Java Database Connectivity JDBCJava Java LOADJAVA Thin JDBC JDBC/Oracle Call Interface Java Java SQL Java SQL SQL Java Java Java DML SQL 1 Java Java Java VM Java Java Java Java SQL Java SQL SQL Java Java SQL 3 SQL Java SQL PL/SQL Java SQL Java Java SQL SQL Java Java SQL Java BYTE SHORT INT FLOAT DOUBLE SQL NUMBER CHAR VARCHAR2 DATE Java SQL SQL Java SQL Java 2 - SQL Java SQL NUMBER Java 'int' - 2 SQL NULL Java NULL SQL NULL Java Java NULL CONSTRAINT Java Oracle 9

2 SQL NULL Java Java SQL NUMBER Java. lang. Integer Java null SQL NULL SQL NULL Java 2 Oracle8i SQL Java Oracle.SQL Java SQL Java SQL oracle.sql SQL SQL Java SQL NULL SQL oracle.sql SQL Java SQL Java oracle.sql.number SQL Java SQL IN OUT IN OUT Java IN Java SQL OUT IN OUT 1 1 IN OUT Java Java Oracle7 Oracle8 PL/SQL PL/SQL SQL EXECUTE PL/SQL Oracle8i Java T SQL A A T B B T SQL PL/SQL Java Java Java 3 CALL-spec SQL Java CALL-spec Java PL/SQL CALL-spec PL/SQL SQL Java CALL-spec SQL Java Java SQL CALL-spec JAVA Java com.oracle.employee.emp.sal_grade com.oracle.employee.emp.approve_raise SQL Java Java Oracle 10

Java Java CALL-spec employee.emp sal_grade Java CALL-spec SQL> CREATE OR REPLACE FUNCTION SGRADE (SAL IN NUMBER) RETURN VARCHAR2 2> IS LANGUAGE JAVA NAME 3> 'com.oracle.employee.emp.sal_grade (float) return java.lang.string'; / Statement processed. CALL-spec for the approve_raise Java method of class employee.emp SQL> CREATE OR REPLACE PROCEDURE APPRAISE (SAL IN NUMBER, RAISE IN 2> NUMBER, NSAL OUT NUMBER) AUTHID INVOKER IS LANGUAGE JAVA NAME com.oracle.employee.emp.approve_raise(float, float, float [ ]) ; / Statement processed. Oracle SQL CALL-spec Oracle SQL Java NUMBER Oracle SQL employee.emp approve_raise Java CALL-spec SQL> CREATE OR REPLACE PROCEDURE APPRAISE (SAL IN NUMBER, RAISE IN 2> NUMBER, NSAL OUT NUMBER) AUTHID INVOKER 3> IS LANGUAGE JAVA NAME com.oracle.employee.emp.approve_raise(oracle.sql.number, oracle.sql.number, oracle.sql.number [ ]) ; / Statement processed. Java Oracle 11

Java Java SQL SQL Java SQL PL/SQL PL/SQL SQL Java 2 CALL Oracle8i SQL CALLCALL CALL SQL*PLUS EXECUTE BEGIN...END CALL Java CALLSQL Java CALL-spec CALL CALL Java CALL-spec SGRADE APPRAISE CALL SQL Java SQL> VARIABLE NEWSAL NUMBER SQL> VARIABLE CURSAL NUMBER SQL> VARIABLE RAISE NUMBER SQL> VARIABLE GRADE VARCHAR2 SQL> EXECUTE :CURSAL := 50000; Statement processed. SQL> EXECUTE :RAISE := 5000; Statement processed. SQL> CALL APPRAISE(:CURSAL, :RAISE, :NEWSAL); Statement processed. SQL> PRINT NEWSAL NEWSAL ------------- 55000 SQL> CALL SGRADE(:CURSAL) INTO :GRADE Statement processed. SQL> PRINT GRADE GRADE ------------ SMTS SQL SQL PL/SQL Java SQL Java SQL CALL-spec SQL SQL Java SQL Java SQL> SELECT ENAME, SAL, SGRADE(SAL) FROM EMP; Java Oracle 12

SQL PL/SQL Java PL/SQL Java Java PL/SQL PL/SQL PL/SQL CALL-spec PL/SQL Java VM Java PL/SQL Java PL/SQL Java DECLARE newsal NUMBER(7,2); cursal NUMBER(7,2); raise NUMBER(7,2); BEGIN APPRAISE(CURSAL, RAISE, NEWSAL); END; Java SQL PL/SQL Oracle8i Java Java Oracle RDBMS Java PL/SQL Java JDBC SQLJ Oracle Java Virtual Machine JDBC JDBC JDBC 1.22 JDBC API JDBC SQL PL/SQL JDBC Oracle8i SQLJ JDBC SQLJ PRO*C SQL C SQL Java SQLJ SQLJ JDBC Java Java 100% Java Java / JDBC JDBC SQLJ JDBC SQLJ SQLJ 'emp' 'sal_grade' 'approve_raise' Java Oracle 13

Java package com.oracle.employee; public class emp { public static String sal_grade (String empname) { float current_sal; #sql {select salary into :current_sal from emp where ename = :empname ; if (current_sal > 0 && current_sal < 50000) return MTS ; if (current_sal >= 50000 && current_sal < 100000) return SMTS ; return ( Salary out of Range ); public static void approve_raise (String empname, float raise, float new_sal [ ]) { float current_sal; int hire_time; #sql {select salary into :current_sal from emp where ename = :empname ; // We are assuming that employment_period is a PL/SQL function that has been previously defined in the // the database that looks at the employees hire date and returns the number of months the employee // has been with the company. #sql hire_time = { VALUES(employment_period (:empname)) ; float percent_raise = (raise / current_sal) * 100; if (hire_time > 9) { if (percent_raise > 15 percent_raise < 5) { new_sal[0] = -1; else { new_sal[0] = current_sal + raise; else { new_sal[0] = -2; Java Oracle 14

SQLJ Java SQL SQL SQLJ SQLJ JDBC Java / Java Java Java PL/SQL 2 / Java Java /Net8 Net8 Connection Manager 1 Java JDBC SQLJ Java Java SQL92 Oracle SQL PL/SQL JDBC Java Pro* Oracle Call Interface ODBC Developer/2000 FORMS Java Java JDBC SQL*Net ORACLE RDBMS OCI SQL*Net Pro* ODBC Dev 2000 [Forms] SQL*Net Net8 Connection Manager SQL*Net Java PL/SQL 2 Java Java Oracle 15

Java Java Oracle8i Java Java 2 Oracle8i Java 2 Oracle Java Oracle Oracle Lite 3 Java 2 SQLJ Oracle Oracle IBM Tandem Sybase JavaSoft Informix 2 0 Java SQL 1 Java Oracle8i Java Java SQL ANSI/ISO 4 Java PL/SQL / / PL/SQL Java Oracle Java RDBMS Oracle Java PL/SQL 2 PL/SQL Java Java PL/SQL 2 / Java Oracle 16

Java Oracle8i Oracle Oracle8i Java Virtual Machine Java Oracle8i Java Java Java SQL Java Java JDBC SQL Java SQL PL/SQL Oracle8i Java Java SQL PL/SQL Java Oracle Oracle Oracle Lite Java Java Oracle 17

Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 650-506-7000 FAX 650-506-7200 http://www.oracle.com/ Oracle Corporation 1998 Oracle SQL*Plus Enabling the Information Age Oracle8i PL/SQL Oracle8 Pro*C JDeveloper Oracle7 Net8 Developer/2000 #430.15.1999.04.A