锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽聽聽 winXP sp2
聽聽聽聽聽 oracle 9.2.0.1.0
銆愯緟鍔╁伐鍏楓戯細(xì)
聽聽聽 JDeveloper904錛堝啓sqlj浠g爜鐢級(jí)
聽聽聽 鐢變簬絎竴嬈$敤sqlj錛屽oracle jvm鍜岃Е鍙戝櫒閮戒笉鏄緢浜嗚В錛屾墍浠ョ▼搴忚兘鎵ц鎴愪粈涔堟牱瀛愪篃涓嶇煡閬擄紝鍙兘涓姝ヤ竴姝ョ殑鎽哥儲(chǔ)鈥︹?/p>
銆愪竴浜涘緢澶辮觸鐨勬搷浣溿戯細(xì)
聽聽聽 1銆佺敤9i鐨凮EM鏉ュ垱寤簀ava婧愶紝娌℃湁鍦ㄥ懡浠よ涓嬬敤loadjava錛?br />聽聽聽 鐢↗Developer鍐欏ソ浜嗙▼搴忎箣鍚庯紝鐩存帴鐢∣EM鍒涘緩鈥渏ava婧愨濓紝鐒跺悗鎶婁唬鐮佺矘璐磋繘鍘伙紝緙栬瘧錛岄氳繃鈥︹﹁繖鏍峰仛鐪嬩技鍙互榪愯錛屽疄闄呬笂鏈変竴浜涚紪璇戣繃紼嬩腑鐨剋arning閮芥病鏈夋樉紺猴紝鎵浠ヤ篃涓嶇煡閬撳埌搴曚細(xì)涓嶄細(xì)鏈夐敊璇紙褰卞搷涓嶅ぇ錛屼笉榪囧緩璁渶濂藉幓鍛戒護(hù)琛屼笅鍘誨仛錛夛紝浣嗘槸錛岃繖鏍峰垱寤哄緢瀹規(guī)槗鐘竴涓嚧鍛界殑閿欒錛屽氨鏄垱寤虹殑鏃跺欏緢瀹規(guī)槗鎶妀ava鏂囦歡鐨勫寘淇℃伅蹇界暐錛屾瘮濡傦紝鍋剁殑sqlj鏂囦歡澶存槸榪欐牱鐨勶細(xì)
package com.supermap.subo;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
import java.sql.*;
import oracle.sqlj.runtime.*;
import java.io.File;
#sql iterator Tuser(Long id , String name);
public class SqljTest
鍦∣EM涓垱寤衡渏ava婧愨濈殑鏃跺欑洿鎺ュ垱寤篠qljTest錛岀劧鍚庢妸浠g爜澶嶅埗榪涘幓錛岀紪璇戝彲浠ラ氳繃錛屼絾鏄湪鈥渏ava綾燴濅笅闈㈠茍娌℃湁鐩稿簲鐨勭被鐢熸垚錛佽屼笖娌℃湁鎻愮ず錛?br />聽聽聽
聽聽聽 2銆佺敤OEM鍘誨垱寤篜ROCEDURE錛宑reate or replace procedure test (args varchar2) as language java name 'SqljTest.test(java.lang.String)';錛堣繖閲屼篃娌℃湁娉ㄦ剰鍒拌榪欐牱寮曠敤錛?com.supermap.subo.SqljTest.test(java.lang.String)';涔熸病鏈変換浣曠殑閿欒鎻愮ず錛岀紪璇戜竴鐩存槸Valid錛侊級(jí)
聽聽聽
聽聽聽 3銆佺敤OEM鍒涘緩瑙﹀彂鍣細(xì)create or replace trigger test after update of NAME on T_USER for each row CALL test2(:old.NAME) 錛岃繖涔堝垱寤哄掓槸娌′粈涔堥棶棰橈紝涓嶈繃鎬繪槸鎻愮ずORA-00963:緙哄皯琛ㄨ揪寮忥紒鍚庢潵璇佹槑鐢ㄥ悓鏍風(fēng)殑璇彞鍒皊qlplus涓嬪幓鍒涘緩錛屼笉浼?xì)鏈夐敊璇Q?/p>
銆愭垚鍔熺殑鎿嶄綔銆戯細(xì)
聽聽聽 1銆佺紪鍐檚qlj浠g爜錛?br />package com.supermap.subo;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
import java.sql.*;
import oracle.sqlj.runtime.*;
import java.io.File;
#sql iterator Tuser(Long id , String name);
public class SqljTest
{
聽 public static void test(String args)
聽聽聽 {
聽聽聽 try
聽聽聽 {
聽聽聽聽聽 Oracle.connect("jdbc:oracle:thin:@localhost:1521:SOOBUR","SYSTEM","supermap");聽
聽聽聽聽聽 Tuser u;
聽聽聽聽聽 #sql
聽聽聽聽聽聽聽 u = { SELECT ID,NAME FROM SOOBUR.T_USER WHERE ID = 1 };
聽聽聽聽聽聽聽 while(u.next())
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽 System.out.println(u.name());
聽聽聽聽聽聽聽聽聽 if (u.name().equals("user_8762886"))
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 File fo = new File("c:/test.txt");
聽聽聽聽聽聽聽聽聽聽聽 fo.createNewFile();
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 } catch (Exception ex)
聽聽聽 {
聽聽聽聽聽 ex.printStackTrace();
聽聽聽 }
聽 }
}
聽聽聽 2銆佷箹涔栫殑鍒板懡浠よ涓嬪幓loadjava錛歭oadjava -user [username]/[pass]@SID -o -v -r ./SqljTest.sqlj
榪欏洖鏈夋彁紺轟簡錛?br />errors聽聽 : source com/supermap/subo/SqljTest
聽聽聽 com/supermap/subo/SqljTest:18: Warning: 浠?NUMERIC(38) 杞崲鍒板垪 java.lang.Long id 鏃? 鍙兘浼?xì)闄嶄綆绮惧害銆?br />聽聽聽聽聽聽聽聽聽 #sql
聽聽聽聽聽聽聽聽聽 ^
聽聽聽聽 Info: 1 warnings
闂涓嶅ぇ錛岃繖涓椂鍊欏啀鎵撳紑OEM鐪嬩竴涓嬶紝鈥渏ava婧愨濇樉紺虹殑鏄痗om/supermap/subo/SqljTest鍚嶅瓧鏄庢樉鐨勪笉涓鏍蜂簡錛佲渏ava綾燴濅笅闈篃鏈変簡鐩稿簲鐨勭洰褰曠粨鏋勫拰綾伙紒
聽聽聽 3銆佺櫥闄嗗埌sqlplus錛宑reate or replace procedure test (args varchar2) as language java name 'SqljTest.test(java.lang.String)';
聽聽聽聽聽 4銆乧reate or replace trigger test after update of NAME on T_USER for each row CALL test2(:old.NAME)
聽聽聽聽聽 5銆佺劧鍚庨殢渚縰pdate涓鏉¤褰曪紝鎴愬姛錛乼est.txt涔熷垱寤烘垚鍔燂紙鍘熸潵浠ヤ負(fù)oracle鐨刯vm鍙兘浼?xì)鍙楅檺鍒跺Q屼笉鑳介殢渚垮鍏朵粬鐩綍榪涜璇誨啓錛岀幇鍦ㄧ湅鏉ヤ笉鏄繖鏍風(fēng)殑^_^錛夛紒
銆愬皬鑺備竴涓嬨?錛?br />聽聽聽 鍋氳瘯楠岀殑鏃跺欏崈涓囦笉瑕佹曢夯鐑?chǔ)锛佷竴瀹氳涔栦箹鐨勫埌鍛戒護(hù)琛屼笅鍘諱竴鍙ヤ竴鍙ョ殑鏁詫紒灝ゅ叾鏄儚鍋惰繖鏍峰垵瀛︾殑xdjm浠紒濂藉儚鐢∣EM鍙鍖栫殑鎿嶄綔寰堟柟渚匡紝鍏跺疄寰堝閿欒閮借蹇界暐浜嗭紝緇撴灉鑷劧鏄笉鎴愬姛浜嗭紒鍔ㄨ緞鍗婂ぉ鏃墮棿鑰楄繘鍘伙紝澶氫笉鍊煎緱錛佽屼笖oracle鐨勯敊璇彁紺哄疄鍦ㄦ槸錛咃純脳錛夛純鈥︹︼紝姣斿錛氣淥RA-00963:緙哄皯琛ㄨ揪寮忥紒鈥濄佲淥RA-04088: 瑙﹀彂鍣?'SOOBUR.TEST' 鎵ц榪囩▼涓嚭閿欌濈瓑絳夆︹﹀疄鍦ㄨ浜烘槸鎽鎬笉鐫澶磋剳錛?br />聽聽聽
聽聽聽 鍋剁殑榪愭皵榪樻槸涓嶉敊鐨勶紝璇曚簡灝忓崐澶╋紝緇堜簬鎴愬姛浜哵_^錛?br />聽聽聽 鍐欏嚭鏉ュ拰澶у鍏變韓錛屽笇鏈涜侀笩浠澶氭寚鏁欙紝澶氬綰犻敊錛屽笇鏈涜窡鍋朵竴鏍風(fēng)殑鑿滈笩浠惛鍙栧伓鐨勬暀璁璣_^
聽聽聽
聽聽聽