亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ディレクトリ 検索
oracle知識 ORACLE的數(shù)據(jù)類型 Oracle技術網(wǎng)—DBMS_Job包的用法 Oracle技術網(wǎng)—Oracle for NT系統(tǒng)實用工具介紹 Oracle技術網(wǎng)—Oracle常見錯誤代碼 Oracle技術網(wǎng)—Oracle常用Script Oracle技術網(wǎng)—Oracle常用數(shù)據(jù)字典 Oracle技術網(wǎng)—ORACLE數(shù)據(jù)庫簡介 Oracle技術網(wǎng)—Oracle特殊包 Oracle技術網(wǎng)—Oracle相關站點 Oracle技術網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 PL/SQL DBA Oracle7 7.3.2.2 Oracle技術網(wǎng)—listener.log的內容增長很快,是否可以刪除重建 Oracle技術網(wǎng)—ORACLE表空間恢復方案 Oracle技術網(wǎng)—Oracle常用系統(tǒng)文件有哪些 Oracle技術網(wǎng)—ORACLE回滾段管理(上) Oracle技術網(wǎng)—ORACLE回滾段管理(下) Oracle技術網(wǎng)—Oracle如何決定使用哪個回退段 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫的空間管理技巧 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫碎片整理 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫有哪幾種關閉方式 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫有哪幾種啟動方式 Oracle技術網(wǎng)—Oracle預定義角色有哪些 Oracle技術網(wǎng)—ROLLBACK不能回滾的命令 Oracle技術網(wǎng)—查看哪些session正在使用哪些回滾段 Oracle技術網(wǎng)—存儲參數(shù)(storage子句)含義及設置技巧 Oracle技術網(wǎng)—和權限有關的表有哪些 Oracle技術網(wǎng)—漫談數(shù)據(jù)庫的啟動和關閉 Oracle技術網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 Oracle技術網(wǎng)—如何備份控制文件 Oracle技術網(wǎng)—如何查出前臺正在發(fā)出的sql語句 Oracle技術網(wǎng)—如何查看Oracle版本及安裝了哪些選項 Oracle技術網(wǎng)—如何查看Oracle數(shù)據(jù)表的建表語句 Oracle技術網(wǎng)—如何查看SGA區(qū)剩余可用內存 Oracle技術網(wǎng)—如何查看各個表空間占用磁盤情況 Oracle技術網(wǎng)—如何查看后臺進程 Oracle技術網(wǎng)—如何查看什么時間有哪些數(shù)據(jù)庫對象結構被修改過 Oracle技術網(wǎng)—如何查看數(shù)據(jù)庫的各種數(shù)據(jù)文件 Oracle技術網(wǎng)—如何查看數(shù)據(jù)庫的字符集 Oracle技術網(wǎng)—如何查看數(shù)據(jù)文件是否自動擴展 Oracle技術網(wǎng)—如何查看數(shù)據(jù)文件所在的路徑 Oracle技術網(wǎng)—如何查看用戶表上的約束內容 Oracle技術網(wǎng)—如何查看用戶表所占空間的大小 Oracle技術網(wǎng)—如何查詢出primary key和forgen key的關系表 Oracle技術網(wǎng)—如何改變當前聯(lián)機日志文件的大小 Oracle技術網(wǎng)—如何利用DBMS_SQL包和游標計算當前用戶下所有表的行數(shù) Oracle技術網(wǎng)—如何啟動ARCHIVELOG模式 Oracle技術網(wǎng)—如何取出某一用戶的密碼,再原封不動的改回去 Oracle技術網(wǎng)—如何設置BLOCK_SIZE大于2K,如:4K、16K Oracle技術網(wǎng)—如何手工指定使用哪個回退段 Oracle技術網(wǎng)—如何修改internal的口令 Oracle技術網(wǎng)—如何移動控制文件到新的目錄中 Oracle技術網(wǎng)—如何移數(shù)據(jù)庫文件 Oracle技術網(wǎng)—如何增加表空間的大小 Oracle技術網(wǎng)—怎樣查看init.ora文件 Oracle技術網(wǎng)—怎樣查看SGA值 Oracle技術網(wǎng)—怎樣查看哪些用戶擁有SYSDBA、SYSOPER權限? Oracle技術網(wǎng)—怎樣快速查出Oracle 數(shù)據(jù)庫中的鎖等待 Oracle技術網(wǎng)—怎樣識別IO競爭和負載平衡 Exp vs Imp Oracle技術網(wǎng)—EXP、IMP 命令詳解 Oracle技術網(wǎng)—Exp/Imp大量數(shù)據(jù) Oracle技術網(wǎng)—Export/Import 使用技巧與常見錯誤 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫的備份與恢復 Oracle技術網(wǎng)—如何把數(shù)據(jù)exp到Sql loader里 Oracle技術網(wǎng)—如何單獨備份一個或多個表 Oracle技術網(wǎng)—如何單獨備份一個或多個用戶 Oracle技術網(wǎng)—如何導入指定表 Oracle技術網(wǎng)—如何建立一個與現(xiàn)存數(shù)據(jù)庫相同,但不包含數(shù)據(jù)的空庫 Oracle技術網(wǎng)—如何在oracle7和oracle8之間exp/imp數(shù)據(jù) Oracle技術網(wǎng)—提高ORACLE數(shù)據(jù)庫系統(tǒng)import性能 Oracle技術網(wǎng)—為何我的導出文件只有500K Oracle技術網(wǎng)—自動備份Oracle數(shù)據(jù)庫 Oracle技術網(wǎng)—作Export或Import時,如何記錄LOG信息? SQL技巧 Oracle技術網(wǎng)—LONG數(shù)據(jù)類型使用上的一些說明 Oracle技術網(wǎng)—Oracle8 PL/SQL編程風格與系統(tǒng)性能的提高 Oracle技術網(wǎng)—Oracle8中用戶名、表名、列名、索引名...可以用中文命名嗎 Oracle技術網(wǎng)—Oracle中如何實現(xiàn)某一字段自動增加1 Oracle技術網(wǎng)—SQL(Structured Query Language)語句分哪幾類 Oracle技術網(wǎng)—SQL*PLUS常用命令列表 Oracle技術網(wǎng)—SQL*Plus系統(tǒng)環(huán)境變量有哪些?如何修改? Oracle技術網(wǎng)—SQL*Plus中緩沖區(qū)命令列表 Oracle技術網(wǎng)—SQL*Plus中能運行哪幾種命令 Oracle技術網(wǎng)—SQLPlus中的復制和粘貼技巧 Oracle技術網(wǎng)—查看本用戶下的各種對象的SQL腳本 Oracle技術網(wǎng)—查找a表中有,而在b表中沒有的記錄 Oracle技術網(wǎng)—利用PL/SQL打印ASCII表 Oracle技術網(wǎng)—如何查找、刪除表中重復的記錄 Oracle技術網(wǎng)—如何對CLOB行字段執(zhí)行全文檢索 Oracle技術網(wǎng)—如何對CLOB字段進行全文檢索? Oracle技術網(wǎng)—如何改變表中列的名字 Oracle技術網(wǎng)—如何改變一個字段初始定義的Check范圍 Oracle技術網(wǎng)—如何給表、列加注釋 Oracle技術網(wǎng)—如何將 primary key 建在其它的表空間上 Oracle技術網(wǎng)—如何刪除表中的列 Oracle技術網(wǎng)—如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? Oracle技術網(wǎng)—如何通過 SQL*PLUS 將符號 & 、'號(單引號) 插入Oracle數(shù)據(jù)庫的表中 Oracle技術網(wǎng)—如何用SQL生成SQL批處理文件 Oracle技術網(wǎng)—如何在PL_SQL中讀寫文件 Oracle技術網(wǎng)—如何自動生成一個含有20000101至20500101共50年日期的表 Oracle技術網(wǎng)—如何自動生成一個含有2000年01月至2050年01月共50年月份的表 Oracle技術網(wǎng)—刪除a表中和b表相同的數(shù)據(jù) Oracle技術網(wǎng)—在Oracle快速進行數(shù)據(jù)行存在性檢查 Oracle技術網(wǎng)—怎樣查看表的結構 Oracle技術網(wǎng)—怎樣改變SQL*Plus啟動時默認路徑 Oracle技術網(wǎng)—怎樣計算表中的記錄數(shù) Oracle技術網(wǎng)—怎樣在SQL*Plus中使用 '&' 來實現(xiàn)自定義參數(shù)變量? Oracle技術網(wǎng)—怎樣在查詢記錄時給記錄加鎖 Oracle錯誤 Oracle7 7.3.2.2 Oracle技術網(wǎng)—Oracle 816中如何啟動Enterprise Manager Oracle技術網(wǎng)—Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登錄 Oracle技術網(wǎng)—ORACLE數(shù)據(jù)庫應用開發(fā)常見問題及排除 Oracle技術網(wǎng)—監(jiān)聽器錯誤 Oracle技術網(wǎng)—聯(lián)機熱備份失敗后,如何打開數(shù)據(jù)庫 Oracle技術網(wǎng)—沒有備份、只有歸檔日志,如何恢復數(shù)據(jù)文件 Oracle技術網(wǎng)—某個數(shù)據(jù)文件損壞,如何打開數(shù)據(jù)庫 Oracle技術網(wǎng)—如何使用歸檔日志進行完全恢復 Oracle技術網(wǎng)—如何正確建立TYPE、partition(分區(qū)) Oracle技術網(wǎng)—一個控制文件被損壞,如何啟動 Oracle技術網(wǎng)—在SQL*Plus中insert進的都是中文的,為什么一存入服務器后,再select出的就是???了 Oracle技術網(wǎng)—重裝Oracle服務器后,以前的數(shù)據(jù)可以恢復嗎 Oracle初學者入門 Oracle技術網(wǎng)—Oracle 8.1.6 for Win2000 系統(tǒng)文件解釋 Oracle技術網(wǎng)—Oracle 基本知識 Oracle技術網(wǎng)—Oracle8 數(shù)據(jù)類型 Oracle技術網(wǎng)—what is sql? Oracle技術網(wǎng)—安裝、配置后,SQL*Plus操作初步 Oracle技術網(wǎng)—安裝Oracle后,經(jīng)常使用的修改表空間的SQL代碼 Oracle安裝、刪除 Oracle技術網(wǎng)—Oradim工具的用法 Oracle技術網(wǎng)—WINDOWS NT上,如何刪除ORACLE SERVICE Oracle技術網(wǎng)—如何連接兩臺Oracle服務器 Oracle技術網(wǎng)—如何在Windows 2000下將Oracle完全卸載 Oracle技術網(wǎng)—如何在WINDOWS NT上刪除所有的Oracle安裝? Oracle技術網(wǎng)—手工安裝數(shù)據(jù)庫時需要安裝那些系統(tǒng)包 Oracle技術網(wǎng)—手工創(chuàng)建數(shù)據(jù)庫的全部腳本及說明 Oracle安全性問題 Oracle技術網(wǎng)—Linux ORACLE 8.1.5漏洞 Oracle技術網(wǎng)—Oracle 8.1.6的oidldapd中的漏洞 Oracle技術網(wǎng)—Oracle8的不安全因素及幾點說明 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫的安全策略 Oracle技術網(wǎng)—Oracle數(shù)據(jù)庫密碼文件的使用和維護 Oracle技術網(wǎng)—提高Oracle數(shù)據(jù)庫應用系統(tǒng)安全的舉例與分析 數(shù)據(jù)庫安全性策略 Oracle系統(tǒng)設置、優(yōu)化、連接 《Oracle8 優(yōu)化技術》摘錄 (第一章 安裝) 《Oracle8 優(yōu)化技術》摘錄 (第二章 內存/CPU) 《Oracle8 優(yōu)化技術》摘錄 (第三章 輸入/輸出) Oracle技術網(wǎng)—ASP 中通過OLEDB訪問 Oracle 的代碼 Oracle技術網(wǎng)—Delphi5 企業(yè)版使用BDE訪問 Oracle方法 Oracle技術網(wǎng)—oracle database access object Oracle技術網(wǎng)—Oracle基于Client/Server的性能調整 Oracle技術網(wǎng)—PB7 連接 Oracle 的配置方法 Oracle技術網(wǎng)—PB內置Oracle數(shù)據(jù)庫接口的使用方法 Oracle技術網(wǎng)—PHP+Oracle(OCI) 初步 Oracle技術網(wǎng)—PHP4連接Oracle 8i的方法(轉譯) Oracle技術網(wǎng)—多個數(shù)據(jù)庫時,如何設置默認數(shù)據(jù)庫 Oracle技術網(wǎng)—如何備份Oracle設置 Oracle技術網(wǎng)—如何讓你的SQL運行得更快 Oracle技術網(wǎng)—如何修改 SQL*Plus 的啟動參數(shù) Oracle技術網(wǎng)—如何在Windosws 2000中安裝JSP并訪問Oracle Oracle技術網(wǎng)—如何在Windosws 2000中安裝perl并訪問Oracle Oracle技術網(wǎng)—如何在Windosws 2000中安裝PHP4并訪問Oracle Oracle技術網(wǎng)—如何在Windosws NT中使用批處理命令自動啟動或關閉Oracle Services Oracle技術網(wǎng)—如何在客戶端省略輸入數(shù)據(jù)庫串,而只輸入用戶名、密碼即可 Oracle技術網(wǎng)—使用Database Configuration Assistant安裝第二個數(shù)據(jù)庫 Oracle技術網(wǎng)—修改Oracle7數(shù)據(jù)庫maxdatafiles參數(shù)的方法 索引、序列、快照、數(shù)據(jù)庫鏈路、觸發(fā)器 Oracle技術網(wǎng)—觸發(fā)器的幾種應用 Oracle技術網(wǎng)—建立觸發(fā)器時最容易忽略的兩個地方 Oracle技術網(wǎng)—快照和觸發(fā)子結合使用的例子 Oracle技術網(wǎng)—能否通過視圖更新表中的數(shù)據(jù) Oracle技術網(wǎng)—如何創(chuàng)建一個簡單的JAVA存儲過程? Oracle技術網(wǎng)—如何創(chuàng)建隱藏IP地址的最后一項的函數(shù)? Oracle技術網(wǎng)—如何加密Oracle中的存儲過程 Oracle技術網(wǎng)—為什么有時ORACLE數(shù)據(jù)庫不用索引來查找數(shù)據(jù) Oracle技術網(wǎng)—我的數(shù)據(jù)庫鏈路為什么不工作 Oracle技術網(wǎng)—一個建立快照的簡單例子 Oracle技術網(wǎng)—怎樣創(chuàng)建一個簡單的自定義過程并引用 Oracle技術網(wǎng)—怎樣手工刷新快照 oracle與其他數(shù)據(jù)庫的比較 MySQL 測試 Oracle技術網(wǎng)—Oracle 和 mysql 的一些簡單命令對比參照 Oracle技術網(wǎng)—Oracle8i和Microsoft SQL Server7.0比較 Oracle技術網(wǎng)—比較SQL Server與Oracle、DB2 Oracle技術網(wǎng)—各種數(shù)據(jù)類型的比較 Oracle技術網(wǎng)—戲說SQL—幾種SQL 服務器的比較 關鍵任務      在Internet上運作公司是一項艱苦的任務 其它知識 OEM常見問題及其解決辦法 Oracle 8 資料庫函式庫 Oracle 資料庫函式庫 Oracle技術網(wǎng)—Decode()函數(shù)使用技巧(NT+IIS+ASP+ORACLE) Oracle技術網(wǎng)—Dual偽列 Oracle技術網(wǎng)—NULL 使用詳解 Oracle技術網(wǎng)—OLAP及其多維數(shù)據(jù)分析 Oracle技術網(wǎng)—Oracle for NT系統(tǒng)實用工具介紹 Oracle技術網(wǎng)—ORACLE 用戶的規(guī)范化管理 Oracle技術網(wǎng)—user、uid偽列 Oracle技術網(wǎng)—大型數(shù)據(jù)庫設計原則 Oracle技術網(wǎng)—留言簿(帶Oracle數(shù)據(jù)庫分頁的顯示功能) Oracle技術網(wǎng)—漫談oracle中的空值 Oracle技術網(wǎng)—如何正確利用Rownum來限制查詢所返回的行數(shù) Oracle技術網(wǎng)—什么是ROWID,為什么需要它 Oracle技術網(wǎng)—數(shù)據(jù)庫技術考試大綱(中級) Oracle技術網(wǎng)—數(shù)據(jù)庫行業(yè)的現(xiàn)狀和展望 Oracle技術網(wǎng)—在客戶端處理Oracle的數(shù)據(jù)行加鎖問題 如何對CLOB行字段執(zhí)行全文檢索 Developer 2000 Oracle技術網(wǎng)—Developer/2000中各鍵盤觸發(fā)子所對應的“按鍵” Oracle技術網(wǎng)—FORM調用REPORT時,如何去掉report server Oracle技術網(wǎng)—FORM中,Exception(例外)都有哪些,如何書寫 Oracle技術網(wǎng)—FORM中,F(xiàn)ORM中,如何引入圖像 Oracle技術網(wǎng)—FORM中,WINDOW標題的設置 Oracle技術網(wǎng)—FORM中,常用快捷鍵有哪些 Oracle技術網(wǎng)—FORM中,觸發(fā)子exit_form的兩種功能是什么 Oracle技術網(wǎng)—FORM中,當光標走到塊的最后一項時,如何讓按“enter回車”鍵時,光標自動走到下一條記錄的第一項? Oracle技術網(wǎng)—FORM中,當用鼠標點擊標簽畫布的某一“標簽頁”時,如何判斷點擊的是哪一頁 Oracle技術網(wǎng)—FORM中,如何屏蔽默認的功能鍵 Oracle技術網(wǎng)—FORM中,如何實現(xiàn)屏幕同步刷新? Oracle技術網(wǎng)—FORM中,如何使用警告 Oracle技術網(wǎng)—FORM中,如何通過 ODBC 訪問 Acress 數(shù)據(jù)? Oracle技術網(wǎng)—FORM中 Oracle技術網(wǎng)—FORM中,設置應用特性(光標類型) Oracle技術網(wǎng)—FORM中,怎樣創(chuàng)建動態(tài)下拉列表List Oracle技術網(wǎng)—FORM中如何存取聲音 Oracle技術網(wǎng)—FORM中如何存取圖象?如何把圖象從一個表中導到另一個表中? Oracle技術網(wǎng)—MIS中的圖像應用技術 Oracle技術網(wǎng)—MIS中的圖像應用技術 Oracle技術網(wǎng)—從FORM中調用REPORT時,如何使打印結果直接輸出到打印機上 Oracle技術網(wǎng)—如何從FORM中調用REPORT程序 Oracle技術網(wǎng)—如何改變FORM(FMX模塊)運行時的title? Oracle技術網(wǎng)—如何在FORM運行中,使定制菜單中的“窗口(W)”菜單項不顯示 Oracle技術網(wǎng)—如何在啟動FORM程序時直接登錄到Oracle數(shù)據(jù)庫上? Oracle技術網(wǎng)—運行FORM時,如何使按鈕變灰(即無效) Oracle技術網(wǎng)—運行FORM時,如何使窗口(runtime窗口、畫布窗口)自動變成最大化、最小化? Oracle技術網(wǎng)—在Developer/2000中如何讀寫文本型操作系統(tǒng)文件 Oracle技術網(wǎng)—在Oracle中實現(xiàn)報表的定長輸出 linux vs Unix How To Install Oracle 8.0.5 onto RedHat Linux 6 HOWTO: OAS for Linux on FreeBSD HOWTO: Oracle for Linux on FreeBSD Oracle 7.3.4 Enterprise Edition for SCO UNIX 安裝步驟 Oracle技術網(wǎng)—Oracle .com 套件在TurboLinux上的安裝 Oracle技術網(wǎng)—ORACLE 7.3 Enterprise在SCO OPEN SERVER 5.02 及 5.04 的安裝過程 Oracle技術網(wǎng)—ORACLE 7.3.4.2 for SCO Unix 安裝說明 Oracle技術網(wǎng)—Oracle 8 for solaris 2.6 安裝步驟 Oracle技術網(wǎng)—Oracle 8(8.0.5)標準版安裝指南 Oracle技術網(wǎng)—Oracle 8i(8.1.5)企業(yè)版安裝指南 Oracle技術網(wǎng)—ORACLE FOR SUN SOLARIS 安裝手冊 Oracle技術網(wǎng)—ORACLE FOR SUN SOLARIS 維護手冊 Oracle技術網(wǎng)—ORACLE V.7.3.4.3 FOR AIX 安裝說明 Oracle技術網(wǎng)—ORACLE8I FOR SUN SOLARIS2.7 安裝說明 Oracle技術網(wǎng)—RedHat 6.1 Step-by-step Install notes for Oracle 8i Oracle技術網(wǎng)—RedHat Linux 6.0 上 Oracle 8(8.0.5)標準版 安裝實例 Oracle技術網(wǎng)—RedHat Linux 6.0 上 Oracle 8i R2 (8.1.6) 企業(yè)版安裝實例 Oracle技術網(wǎng)—如何集成Linux/Apache/PHP4/FastCGI/Oracle/MySQL環(huán)境 Oracle技術網(wǎng)—如何在你的Linux機器上安裝運行Oracle Oracle技術網(wǎng)—為Linux配備Oracle 8 Oracle技術網(wǎng)—在RedHat 6.0上安裝Oracle 8i(全攻略)
テキスト

PB內置OEACLE數(shù)據(jù)庫接口的使用方法

馬長明
  PowerBuilder(PB)和Oracle分別是前端開發(fā)工具和RDBMS的主流產(chǎn)品。PB提供了兩種與Oracle連接的接口:Pow
erSoft內置的數(shù)據(jù)庫接口(Native Database Interface)和ODBC接口。本文介紹使用PB60內置Oracle接口的方法
,包括數(shù)據(jù)描述文件的設置、存儲過程的調用和存儲過程作為數(shù)據(jù)窗口數(shù)據(jù)源的操作方法等內容,使用的RDBMS的Or
acle 73。

  PowerBuilder與Oracle的連接

  假定已安裝Oracle客戶端應用程序。可用Sqlplus或Tnsping等是否能連接到Oracle數(shù)據(jù)庫,確定在SQLNET配
置文件中使用的數(shù)據(jù)庫別名(Database Alias,又稱服務器名,Server Name)。如有疑問,可在Oracle客戶端程序
目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括SQL*NET應用程序的安裝目錄(如C:\ORAWIN95\BIN)。

  進入PB的Database Profiles畫筆,可看到所有已安裝的數(shù)據(jù)庫接口(PB60缺省安裝的是Oracle 73版的接
口,如使用低版本的Oracle,需在安裝時指定),選擇“O73 Oracle 73”,點擊“New”按鈕,進入Database Pro
file Setup對話框。在“Connection”頁輸入下列信息:Profile Name:為該Database Profile起一個有意義
的名稱;

  Server:@TNS:ServerName,其中ServerName為上述數(shù)據(jù)庫別名(服務器名),如@TNS:ORA73;

  Login ID:Oracle數(shù)據(jù)庫中實際的用戶名,由于PB初次連接到數(shù)據(jù)庫時要自動建立五個系統(tǒng)表(PowerBuilder
Catalog Table:PBCATTBL,PBCATCOL,PBCATEDT,PBCATFMT,PBCATVLD,存儲表的擴展屬性),因此第一個連接到Oracle
的用戶必須具有建表、給PUBLIC角色授權等權限。例如可用SYSTEM用戶進行第一次連接,此后的連接對用戶則無特
殊要求;

  Password:該用戶的口令。

  設置上述內容后,即可連上Oracle。為優(yōu)化數(shù)據(jù)庫連接,還可設置下列選項:

  Prompt for Database Information:連接時是否提示用戶輸入用戶名和口令;

  Generate Trace:啟動DB跟蹤工具,跟蹤連接;

  Thread Safe:開發(fā)需要多線程環(huán)境支持的分布式應用時,選擇該項。缺省為未選,適用于非分布應用;

  PBDBMS:與存儲過程調用方式有關的參數(shù)。Oracle為72或更高版本時,清除該選項,此時帶IN OUT參數(shù)的存
儲過程可作為數(shù)據(jù)窗口數(shù)據(jù)源。72版本以下,選擇該項,調用PBDBMS.Put-Line建立存儲過程的SQL語句,缺省
是選中;

  Commit on Disconnect:斷開連接時,指定提交或回退未提交的事務;

  Case Sensitive:連接的Oracle服務器是否區(qū)分大小寫。注意該項選中時,所有主鍵、包含主鍵的表名、外鍵須全為大寫字符。

  PowerBuilder Catalog Tables Owner:指定擁有PB系統(tǒng)表的用戶,缺省為“SYSTEM”。如果要使用多種顯示
格式或有效性規(guī)則,可以在不同的用戶下建立幾套系統(tǒng)表;

  Table Criteria:指定滿足哪些條件的表、視圖和同義詞可在“Select Tables”對話框中顯示出來。例如DEV
用戶下銷售子系統(tǒng)的表都以SALE開頭,則可以用SALE%、DEV、“TABLE”、“VIEW”指定只顯示DEV用戶以SALE開頭的表和視圖;

  Asynchronous:選擇該項,可在一個復雜的SQL語句執(zhí)行過程中,返回第一行結果前,切換到其他操作;

  Number of Seconds to Wait:若上一項選中,還可進一步通過該項指定檢索數(shù)據(jù)時,等待數(shù)據(jù)庫響應的時間
;

  Retrieve Blocking Factor:決定數(shù)據(jù)窗口對象一次可從數(shù)據(jù)庫取出的記錄數(shù);

  Number of SQL Staments Cached:PB可將數(shù)據(jù)窗口對象產(chǎn)生的SQL語句和嵌入式SQL語句保存在SQL語句緩沖區(qū)
,該參數(shù)指定緩沖區(qū)為PB保留的SQL語句數(shù)目。該數(shù)值可由下式計算:SQLCache=服務器OPEN―CURSORS數(shù)-5(保留的游標數(shù))-本連接預期使用的最大游標數(shù);

  Disable Bind:指定是否將輸入變量與SQL語句綁定,此參數(shù)影響PB為數(shù)據(jù)窗口對象生成INSERT語句的方式;

  Static Bind:數(shù)據(jù)窗口對象檢索數(shù)據(jù)前是否檢測SELECT語句的合法性;

  在Syntax頁,還可指定日期、時間的格式等。在Preview頁可查看Database Profile設置對應的PowerScript寫
法。

  Oracle存儲過程的使用

  歸納起來PB60中調用Oracle存儲過程有以下四種方法。

  方法一:以關鍵字RPCFUNC聲明存儲過程;

  方法二:以DECLARE PROCEDURE語句聲明存儲過程;

  方法三:以動態(tài)SQL語句實現(xiàn);

  方法四:調用函數(shù)PBDBMS.Put-Line。

  一般情況下,方法一能得到較好的運行效率和更完善的功能。因此推薦使用方法一。但是某些類型的存儲過程只能使用其他方法。以下重點介紹方法一和方法二。
  兩種方法比較起來,有以下幾點主要區(qū)別:

  1)方法一適用于具有IN、OUT和IN OUT參數(shù)的存儲過程,而方法二僅支持IN和OUT參數(shù),不支持IN OUT參數(shù);
  2)方法一對參數(shù)的數(shù)目無限制,方法二最多支持255個參數(shù);

  3)方法一不支持記錄(Recorder)的傳遞,方法二可傳遞和接收記錄。

  方法一操作步驟:

  1)在用戶對象畫筆中創(chuàng)建一個Class-Standard類型的,從Transaction繼承的用戶對象。

  2)在此用戶對象中,聲明Local External Functions,將存儲過程以RPCFUNC關鍵字聲明為外部函數(shù)。在Declare Local External Functions對話框中按Procedures按鈕選擇要調用的后臺存儲過程,或直接輸入類似subroutin
e TEST(long id,ref string name)RPCFUNC ALIAS FOR “DEVTEST”的語句。例如中DEVTEST的參數(shù)為(id IN NUMBER,name IN OUT VARCHAR2)。

  3)保存該用戶對象。

  4)在Application畫筆中,進入應用屬性對話框,在Variable Types頁,將上Transaction用戶對象設置為缺省的全局變量SQLCA。

  5)腳本中,編碼調用相應的外部函數(shù)。形式:SQLCA焙數(shù)名(參數(shù))。如可用“SQLCATEST(ln―id,ls―name);”調用例子中定義的DEVTEST存儲過程。其中l(wèi)n―id,ls―name為調用參數(shù)。

  方法一注意事項:

  1)由于PB中String類型的數(shù)據(jù)長度是動態(tài)分配的,因此對Ref String類型的參數(shù),每次調用前需要申請足夠的
空間。例如上例從輸入的id值檢索name,后臺聲明的NAME數(shù)據(jù)類型為VARCHAR2(30),每次調用SQLCATEST前需要
用ls―name=SPACE(30)置ls―name為足夠長度的空串。
  2)類似地當傳遞的參數(shù)為數(shù)組(后臺稱PL/SQL Table)時,聲明參數(shù)為相應類型的動態(tài)數(shù)組,并在每次調用前設
置數(shù)組上界為足夠大的值。例如:DEV用戶的DEPT包中聲明了TYPE tbl―name IS TABLE OF VARCHAR2(30) INDEX B
Y BINARY―INTEGER;存儲過程EMP―OF―DEPT(dept―id IN NUMBER,name OUT DEPT.tbl―name)返回部門編寫為de
pt―id的部門的所有員工,置name數(shù)組中。假定所有部門的員工數(shù)目不超過100,則可用以下語句聲明和調用DEV
EMP―OF―DEPT:

  Declare External Functions對話框中:

  Subroutine EMP―OF―DEPT(long dept―id,ref str
ing name[]) RPCFUNC ALIAS FOR ″DEV.EMP―OF―DEPT


  PowerScript腳本中:

  long ln=dept―id

  string lsa―name[]

  ……

  lsa―name[100]=″ //置動態(tài)數(shù)組lsa―name上界為
100

  ln―dept―id=2

  SQLCA.EMP―OF―DEPT(ln―dept―id,lsa―name) /
/檢索部門2的所有員工的名字

  方法二使用方法:

  在腳本中加入如下編碼(以DEVTEST為例):

  long ln―id

  string ls―name

  ln―id=100

  DECLARE test PROCEDURE FOR DEV.TEST(:ln―id);
//test有一個IN參數(shù),一個OUT參數(shù)

  EXECUTE test;

  FETCH test INTO:ls―name;

  方法三使用方法:

  根據(jù)輸入輸出參數(shù)的不同,PB中的動態(tài)SQL語句有四種格式:1)無輸入輸出參數(shù);2)只有輸入?yún)?shù),無輸出參
數(shù);3)有確定數(shù)目輸入輸出參數(shù);4)輸出結果列的數(shù)目不定。其中第1)、第2)中格式的動態(tài)SQL語句也可用來調用簡
單的存儲過程。

  1)沒有輸入輸出參數(shù)的存儲過程。例如DEVDEMO1存儲過程沒有輸入輸出參數(shù),可用下列語句調用:

  sqlstring=″EXECUTE DEMO1()″

  EXECUTE IMMEDIATE:sqlstring;

  2)只有輸入?yún)?shù)的存儲過程。例如DEV.DEMO2(name IN VARCHAR2,birthday IN DATE)

  PREPARE SQLSA FROM ″EXECUTE DEMO2(?,?);″

  EXECUTE SQLSA USING:ls―name,:ldt―birthday;

  如果是72以下版本的Oracle,可用方法四PBDMBS.Put―Line()函數(shù)調用建立存儲過程。此時需選上Database Profile中的PBDBMS復選框。

  存儲過程作為數(shù)據(jù)窗口的數(shù)據(jù)源

  以一個簡單數(shù)據(jù)窗口(顯示服務器的系統(tǒng)時間)為例說明怎樣創(chuàng)建存儲過程作為數(shù)據(jù)源的數(shù)據(jù)窗口。

  1)在某個包(如PACK―TYPE)中定義日期類型的Recorder自定義數(shù)據(jù)類型datarec;

  2)創(chuàng)建返回系統(tǒng)時間的存儲過程:

  PROCEDURE get―sysdata(sysdt IN OUT PACK-TYPE
.datarec)IS

  BEGIN

  open sysdt for select sysdate from dual;

  END;

  3)新建數(shù)據(jù)窗口,數(shù)據(jù)源選擇Stored Procedure;

  4)在隨后的Select Stored Procedure對話框中選擇get―sysdate即可。

  如果作為數(shù)據(jù)源的存儲過程有IN參數(shù),則這些參數(shù)就是數(shù)據(jù)窗口的檢索參數(shù)(Retrieve Argument)。

  

  
前の記事: 次の記事: