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数据库接口的使用方法相关推荐

  1. oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle连接总结(内连接.外连接.自然连接,交叉连接,自连接) 1.简述  1) 两个表的连接,是通过将一个表中的一列或者多列同另一 ...

  2. oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法

    Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...

  3. Python内置函数sorted()和列表方法sort()的排序原理

    问题描述:在Python中,可以使用内置函数sorted()和列表方法sort()对数据进行排序,但要求所有数据支持关系运算符,也就是这些数据本身是可以比较大小的才能进行排序,除非使用key参数明确指 ...

  4. Python内置函数sorted()和列表方法sort()排序规则不得不说的事

    Python内置函数sorted()和列表方法sort()可以使用key参数指定排序规则,并且都是稳定排序,也就是说,对于指定规则不能涵盖的元素,本来谁在前面,排好以后谁还是在前面. 直接用代码说话: ...

  5. 重命名Windows内置Administrator帐户的方法

    重命名Windows内置Administrator帐户的方法 https://blog.csdn.net/allway2/article/details/103938934?utm_medium=di ...

  6. 爬虫(21)crawlspider讲解古诗文案例补充+小程序社区案例+汽车之家案例+scrapy内置的下载文件的方法

    文章目录 第十九章 crawlspider讲解 1. 古诗文案例crawlspider 1.1 需求 1.2 处理 1.3 解析 2. 小程序社区案例 2.1 创建项目 2.2 项目配置 2.3 解析 ...

  7. 虚拟 sim 卡服务器,基于虚拟SIM卡的内置多虚拟SIM卡方法

    1. 一种基于虚拟SIM卡的内置多虚拟SIM卡方法,其特征在于该方法首先,在可信执行 环境下划分一块区域,保存多张虚拟SIM卡的固定存放的数据.暂时存放的有关网络的数 据.相关的业务代码,手机把IMS ...

  8. oracle 触发器 和 常用内置程序包

    --触发器和常用内置程序包 --author:shine --一.触发器: --1.触发器组成:由触发器语句,触发器限制,触发器操作三部分组成. --exp:1.1.1 create or repla ...

  9. oracle连接出现ora-12154,与虚拟机Oracle连接出现ora-12154问题的解决方法

    谈到ora-12154问题,网上有一大堆解决方法,原因基本统一:tns或listener配置不正确.对于listener配置不正确的一般较少发生,大多数人都是按照默认配置一路"下一步&quo ...

  10. python oracle连接池_【Python + Oracle】Python Oracle连接池—改进版

    Oracle 连接池第四版. 编程语言 Python 语言版本 3.5.3 实现功能 oracle 连接池,解决频繁连接oracle数据库带来的连接资源耗费问题 程序托管 GitHub-OracleP ...

最新文章

  1. 学习一个 Linux 命令:shutdown 命令
  2. 股票交易应用系统的性能分析工具介绍(一)
  3. Maven exec:java 运行 Java main 方法
  4. Arcgis for Android 空间数据WKT与JSON描述
  5. js文件位置--为甚有些js必须放在尾部
  6. 类模板 - C++快速入门45
  7. [译]Chapter 1 - An Introduction to ASP.NET MVC(2)
  8. VB打开文本文件各种方法
  9. 大学生计算机考试题题库,大学生统考计算机一级考试试题题库(供参考)
  10. 中望lisp加密_alisp文件加密测试.LSP
  11. 【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)——人脸识别算法
  12. 服务器lsass系统错误,电脑开机提示lsass.exe系统错误无法进入系统的解决方法
  13. Building and Securing RESTful APIs in ASP.NET Core 在ASP.NET Core中构建安全的RESTful API Lynda课程中文字幕
  14. Ubuntu 16.04系统安装VS Code流程详解
  15. 整数转罗马数字(C++)
  16. 微信c语言刷题软件,独家全能微信刷题小程序正式上线(经典秒杀口诀模块全民共享)...
  17. 期末大作业+毕业设计:在线电影网站设计——影视大全(6页面)含登录注册HTML+CSS+JavaScript
  18. python 发送邮件connect none_python发送邮件(smtplib)
  19. Minesweeper-Java
  20. 2014 年第六届全国大学生数学竞赛江西赛区赣南师范学院获奖名单(数学专业)

热门文章

  1. 电位器/电阻器型号命名方法
  2. 明小子3.5检测网站应用
  3. 苹果/安桌点歌系统代码
  4. 左右手桌面股票盯盘软件(DesktopStockTracking)
  5. 传统算法与神经网络算法,神经网络是谁提出的
  6. 如何在OTN网站下载Grid方法(Oracle RAC)
  7. ddk高级主题和提示
  8. 荣耀路由器w831刷linux,华为荣耀路由器登录入口:荣耀路由器WS831设置指南【图解】...
  9. VMware16的下载安装及搭建Linux环境
  10. 统计学基础知识(二)