Oracle连接pb,PB内置Oracle数据库接口的使用方法
PowerBuilder(PB)和Oracle分别是前端开发工具和RDBMS的主流产品。PB提供了两种与Oracle连接的接口:PowerSoft内置的数据库接口(Native
Database Interface)和ODBC接口。本文介绍使用PB6
0内置Oracle接口的方法,包括数据描述文件的设置、存储过程的调用和存储过程作为数据窗口数据源的操作方法等内容,使用的RDBMS的Oracle
7 3。
PowerBuilder与Oracle的连接
假定已安装Oracle客户端应用程序。可用Sqlplus或Tnsping等是否能连接到Oracle数据库,确定在SQL
NET配置文件中使用的数据库别名(Database Alias,又称服务器名,Server
Name)。如有疑问,可在Oracle客户端程序目录下tnsname.ora文件中找到。另外保证搜索路径已包括SQL*NET应用程序的安装目录(如C:\ORAWIN95\BIN)。
进入PB的Database Profiles画笔,可看到所有已安装的数据库接口(PB6
0缺“沧暗氖荗racle 7
3版的接口,如使用低版本的Oracle,需在安装时指定),选择“O73 Oracle 7
3”,点击“New”按钮,进入Database
Profile
Setup对话框。在“Connection”页输入下列信息:Profile
Name:为该Database Profile起一个有意义的名称;
Server:@TNS:ServerName,其中ServerName为上述数据库别名(服务器名),如@TNS:ORA73;注意:PB9.5则没有前面那个@TNS:!!!
Login
ID:Oracle数据库中实际的用户名,由于PB初次连接到数据库时要自动建立五个系统表(PowerBuilder
Catalog
Table:PBCATTBL,PBCATCOL,PBCATEDT,PBCATFMT,PBCATVLD,存储表的扩展属性),因此第一个连接到Oracle
的用户必须具有建表、给PUBLIC角色授权等权限。例如可用SYSTEM用户进行第一次连接;,此后的连接对用户则无特殊要求
Password:该用户的口令。
设置上述内容后,即可连上Oracle。为优化数据库连接,还可设置下列选项:
Prompt for Database Information:连接时是否提示用户输入用户名和口令;
Generate Trace:启动DB跟踪工具,跟踪连接;
Thread Safe:开发需要多线程环境支持的分布式应用时,选择该项。缺省为未选,适用于非分布应用;
PBDBMS:与存储过程调用方式有关的参数。Oracle为7 2或更高版本时,清除该选项,此时带IN
OUT参数的存储过程可作为数据窗口数据源。7
2版本以下,选择该项,调用PBDBMS.Put-Line建立存储过程的SQL语句,缺省是选中;
Commit on Disconnect:断开连接时,指定提交或回退未提交的事务;
Case
Sensitive:连接的Oracle服务器是否区分大小写。注意该项选中时,所有主键、包含主键的表名、外键须全为大写字符。
PowerBuilder Catalog Tables
Owner:指定拥有PB系统表的用户,缺省为“SYSTEM”。如果要使用多种显示
格式或有效性规则,可以在不同的用户下建立几套系统表;
Table Criteria:指定满足哪些条件的表、视图和同义词可在“Select
Tables”对话框中显示出来。例如DEV
用户下销售子系统的表都以SALE开头,则可以用SALE%、DEV、“TABLE”、“VIEW”指定只显示DEV用户以SALE开头的表和视图;
Asynchronous:选择该项,可在一个复杂的SQL语句执行过程中,返回第一行结果前,切换到其他操作;
Number of Seconds to
Wait:若上一项选中,还可进一步通过该项指定检索数据时,等待数据库响应的时间;
Retrieve Blocking Factor:决定数据窗口对象一次可从数据库取出的记录数;
Number of SQL Staments
Cached:PB可将数据窗口对象产生的SQL语句和嵌入式SQL语句保存在SQL语句缓冲区,该参数指定缓冲区为PB保留的SQL语句数目。该数值可由下式计算:SQLCache=服务器OPEN—CURSORS数-5(保留的游标数)-本连接预期使用的最大游标数;
Disable
Bind:指定是否将输入变量与SQL语句绑定,此参数影响PB为数据窗口对象生成INSERT语句的方式;
Static Bind:数据窗口对象检索数据前是否检测SELECT语句的合法性;
在Syntax页,还可指定日期、时间的格式等。在Preview页可查看Database
Profile设置对应的PowerScript写法。
方法二使用方法:
在脚本中加入如下编码(以DEV TEST为例):
long ln—id
string ls—name
ln—id=100
DECLARE test PROCEDURE FOR DEV.TEST(:ln—id);
//test有一个IN参数,一个OUT参数
EXECUTE test;
FETCH test INTO:ls—name;
方法三使用方法:
根据输入输出参数的不同,PB中的动态SQL语句有四种格式:1)无输入输出参数;2)只有输入参数,无输出参
数;3)有确定数目输入输出参数;4)输出结果列的数目不定。其中第1)、第2)中格式的动态SQL语句也可用来调用简
单的存储过程。
1)没有输入输出参数的存储过程。例如DEV DEMO1存储过程没有输入输出参数,可用下列语句调用:
sqlstring=″EXECUTE DEMO1()″
EXECUTE IMMEDIATE:sqlstring;
2)只有输入参数的存储过程。例如DEV.DEMO2(name IN VARCHAR2,birthday IN
DATE)
PREPARE SQLSA FROM ″EXECUTE DEMO2(?,?);″
EXECUTE SQLSA USING:ls—name,:ldt—birthday;
如果是7
2以下版本的Oracle,可用方法四PBDMBS.Put—Line()函数调用建立存储过程。此时需选上Database
Profile中的PBDBMS复选框。
存储过程作为数据窗口的数据源
以一个简单数据窗口(显示服务器的系统时间)为例说明怎样创建存储过程作为数据源的数据窗口。
1)在某个包(如PACK—TYPE)中定义日期类型的Recorder自定义数据类型datarec;
2)创建返回系统时间的存储过程:
PROCEDURE get—sysdata(sysdt IN OUT PACK-TYPE
.datarec)IS
BEGIN
open sysdt for select sysdate from dual;
END;
3)新建数据窗口,数据源选择Stored Procedure;
4)在随后的Select Stored Procedure对话框中选择get—sysdate即可。
如果作为数据源的存储过程有IN参数,则这些参数就是数据窗口的检索参数(Retrieve Argument)。
Oracle连接pb,PB内置Oracle数据库接口的使用方法相关推荐
- oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)
永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle连接总结(内连接.外连接.自然连接,交叉连接,自连接) 1.简述 1) 两个表的连接,是通过将一个表中的一列或者多列同另一 ...
- oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法
Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...
- Python内置函数sorted()和列表方法sort()的排序原理
问题描述:在Python中,可以使用内置函数sorted()和列表方法sort()对数据进行排序,但要求所有数据支持关系运算符,也就是这些数据本身是可以比较大小的才能进行排序,除非使用key参数明确指 ...
- Python内置函数sorted()和列表方法sort()排序规则不得不说的事
Python内置函数sorted()和列表方法sort()可以使用key参数指定排序规则,并且都是稳定排序,也就是说,对于指定规则不能涵盖的元素,本来谁在前面,排好以后谁还是在前面. 直接用代码说话: ...
- 重命名Windows内置Administrator帐户的方法
重命名Windows内置Administrator帐户的方法 https://blog.csdn.net/allway2/article/details/103938934?utm_medium=di ...
- 爬虫(21)crawlspider讲解古诗文案例补充+小程序社区案例+汽车之家案例+scrapy内置的下载文件的方法
文章目录 第十九章 crawlspider讲解 1. 古诗文案例crawlspider 1.1 需求 1.2 处理 1.3 解析 2. 小程序社区案例 2.1 创建项目 2.2 项目配置 2.3 解析 ...
- 虚拟 sim 卡服务器,基于虚拟SIM卡的内置多虚拟SIM卡方法
1. 一种基于虚拟SIM卡的内置多虚拟SIM卡方法,其特征在于该方法首先,在可信执行 环境下划分一块区域,保存多张虚拟SIM卡的固定存放的数据.暂时存放的有关网络的数 据.相关的业务代码,手机把IMS ...
- oracle 触发器 和 常用内置程序包
--触发器和常用内置程序包 --author:shine --一.触发器: --1.触发器组成:由触发器语句,触发器限制,触发器操作三部分组成. --exp:1.1.1 create or repla ...
- oracle连接出现ora-12154,与虚拟机Oracle连接出现ora-12154问题的解决方法
谈到ora-12154问题,网上有一大堆解决方法,原因基本统一:tns或listener配置不正确.对于listener配置不正确的一般较少发生,大多数人都是按照默认配置一路"下一步&quo ...
- python oracle连接池_【Python + Oracle】Python Oracle连接池—改进版
Oracle 连接池第四版. 编程语言 Python 语言版本 3.5.3 实现功能 oracle 连接池,解决频繁连接oracle数据库带来的连接资源耗费问题 程序托管 GitHub-OracleP ...
最新文章
- 学习一个 Linux 命令:shutdown 命令
- 股票交易应用系统的性能分析工具介绍(一)
- Maven exec:java 运行 Java main 方法
- Arcgis for Android 空间数据WKT与JSON描述
- js文件位置--为甚有些js必须放在尾部
- 类模板 - C++快速入门45
- [译]Chapter 1 - An Introduction to ASP.NET MVC(2)
- VB打开文本文件各种方法
- 大学生计算机考试题题库,大学生统考计算机一级考试试题题库(供参考)
- 中望lisp加密_alisp文件加密测试.LSP
- 【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)——人脸识别算法
- 服务器lsass系统错误,电脑开机提示lsass.exe系统错误无法进入系统的解决方法
- Building and Securing RESTful APIs in ASP.NET Core 在ASP.NET Core中构建安全的RESTful API Lynda课程中文字幕
- Ubuntu 16.04系统安装VS Code流程详解
- 整数转罗马数字(C++)
- 微信c语言刷题软件,独家全能微信刷题小程序正式上线(经典秒杀口诀模块全民共享)...
- 期末大作业+毕业设计:在线电影网站设计——影视大全(6页面)含登录注册HTML+CSS+JavaScript
- python 发送邮件connect none_python发送邮件(smtplib)
- Minesweeper-Java
- 2014 年第六届全国大学生数学竞赛江西赛区赣南师范学院获奖名单(数学专业)