PB内置Oracle数据库接口的使用方法[1]

PB内置Oracle数据库接口的使用方法[1],第1张

PowerBuilder(PB)和Oracle分别是前端开发工具和RDBMS的主流产品 PB提供了两种与Oracle连接的接口 PowerSoft内置的数据库接口(Native Database Interface)和ODBC接口

PowerBuilder与Oracle的连接

假定已安装Oracle客户端应用程序 可用Sqlplus或Tnsping等是否能连接到Oracle数据库 确定在SQLNET配置文件中使用的数据库别名(Database Alias 又称服务器名 Server Name) 如有疑问 可在Oracle客户端程序目录下tnsname ora文件中找到 另外保证搜索路径已包括SQLNET应用程序的安装目录(如C:\ORAWIN \BIN)

进入PB的Database Profiles画笔 可看到所有已安装的数据库接口(PB 缺省安装的是Oracle 版的接口 如使用低版本的Oracle 需在安装时指定) 选择 O Oracle 点击 New 按钮 进入Database Profile Setup对话框 在 Connection 页输入下列信息 Profile Name:为该Database Profile起一个有意义的名称 Server:@TNS:ServerName 其中ServerName为上述数据库别名(服务器名) 如@TNS:ORA ;注意 PB 则没有前面那个@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为 或更高版本时 清除该选项 此时带IN OUT参数的存储过程可作为数据窗口数据源 版本以下 选择该项 调用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数 (保留的游标数) 本连接预期使用的最大游标数

Disable Bind:指定是否将输入变量与SQL语句绑定 此参数影响PB为数据窗口对象生成INSERT语句的方式

Static Bind:数据窗口对象检索数据前是否检测SELECT语句的合法性

在Syntax页 还可指定日期 时间的格式等 在Preview页可查看Database Profile设置对应的PowerScript写法

Oracle存储过程的使用

归纳起来PB 中调用Oracle存储过程有以下四种方法

方法一 以关键字RPCFUNC声明存储过程

方法二 以DECLARE PROCEDURE语句声明存储过程

方法三 以动态SQL语句实现

方法四 调用函数PBDBMS Put Line

一般情况下 方法一能得到较好的运行效率和更完善的功能 因此推荐使用方法一 但是某些类型的存储过程只能使用其他方法 以下重点介绍方法一和方法二

两种方法比较起来 有以下几点主要区别

)方法一适用于具有IN OUT和IN OUT参数的存储过程 而方法二仅支持IN和OUT参数 不支持IN OUT参数

)方法一对参数的数目无限制 方法二最多支持 个参数

)方法一不支持记录(Recorder)的传递 方法二可传递和接收记录

方法一 *** 作步骤

)在用户对象画笔中创建一个Class Standard类型的 从Transaction继承的用户对象

)在此用户对象中 声明Local External Functions 将存储过程以RPCFUNC关键字声明为外部函数 在Declare Local External Functions对话框中按Procedures按钮选择要调用的后台存储过程 或直接输入类似subroutine TEST(long id ref string name)RPCFUNC ALIAS FOR DEVTEST 的语句 例如DEVTEST的参数为(id IN NUMBER name IN OUT VARCHAR )

)保存该用户对象

)在Application画笔中 进入应用属性对话框 在Variable Types页 将上Transaction用户对象设置为缺省的全局变量SQLCA

)脚本中 编码调用相应的外部函数 形式 SQLCA函数名(参数) 如可用 SQLCATEST(ln id ls name) 调用例子中定义的DEVTEST存储过程 其中ln id ls name为调用参数

方法一注意事项

)由于PB中String类型的数据长度是动态分配的 因此对Ref String类型的参数 每次调用前需要申请足够的空间 例如上例从输入的id值检索name 后台声明的NAME数据类型为VARCHAR ( ) 每次调用SQLCATEST前需要用ls name=SPACE( )置ls name为足够长度的空串

lishixinzhi/Article/program/PB/201311/24641

以常见的mysql和oracle这两种数据库为例:

一、连接mysql(mysql服务已开启)

1、mysql数据库安装在本机,则直接敲入命令mysql-uroot-p即可。

2、mysql数据库不是安装在本机,则需要加参数,常用参数如下:

1),-h,指定目标ip地址

2),-u,指定登录用户名。

3),-p,指定密码,密码可以接在-p后面输入mysql-uroot-p123456。也可以mysql-uroot-p回车等提示输入密码时输入,这样输入密码没有回显。

二、连接oracle数据库

1、若当前用户为root用户,则需要执行命令su-oracle切换至oracle用户;若当前用户为oracle用户则此步骤省略。

2、若oracle安装在本机,则在oracle用户下直接执行sqlplususername/password(username,password替换成真实的用户名和密码),若提示connected则表示连接成功;

3、若oracle安装在其他机器,则在oracle用户下执行sqlplususername/password@//host:port/sid。host为oracle所在机器的ip或者机器名,port为端口号,通常为1521,sid指oracle的实例名。

扩展资料:

linux下 *** 作数据库(以mysql为例)的其他命令

一、linux下查看mysql服务的命令两种方式:

1、[root@localhostbin]ps-ef|grepmysql

2、[root@localhostbin]netstat-nlp

二、linux下启动mysql服务的两种方式:

1、命令方式:

[root@localhostbin]cd/usr/bin

[root@localhostbin]/mysqld_safe&

2、服务方式:

[root@localhost~]servicemysqlstart

如果服务在启动状态,直接重启服务用以下命令:[root@localhost~]servicemysqlrestart

三、linux下关闭mysql服务的两种方式:

1、命令方式:

[root@localhost~]mysqladmin-urootshutdown

2、服务方式:

[root@localhost~]servicemysqlstop

参考资料:

mysql官方文档

在把Oracle查询结果转换为SQL

Server的时候要特别当心一些不容易注意到的问题。

我们知道,T-SQL是SQL

Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对

ANSI

SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL

Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL

Server的要求是一样的。

SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT

‘x’

FROM

dual

而对等的SQL

Server查询则是下面这个样子:

SELECT

‘x’

连接

Oracle用||

符号作为连接符,而SQL

Server的连接符是加号:+

Oracle查询如下所示:

Select

‘Name’

||

‘Last

Name’

From

tableName

对应的SQL

Server查询如下所示:

Select

‘Name’

+

‘Last

Name’

数字取舍

Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。

在SQL

Server下可以用Round或者Floor

以下是Oracle查询:

SELECT

TRUNC(1579,1)

"Truncate"

FROM

DUAL;

下面是同类查询的SQL

Server版本:

SELECT

ROUND(1579,

0)

rounded

ROUND(1579,

0,1)

truncated

SELECT

FLOOR(ROUND(1579,

0)),

FLOOR(ROUND(1579,

0,1)

在把Oracle查询转换为SQL

Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL

Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对

ANSI

SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL

Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL

Server的要求是一样的。

SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT

‘x’

FROM

dual

而对等的SQL

Server查询则是下面这个样子:

SELECT

‘x’

连接

Oracle用||

符号作为连接符,而SQL

Server的连接符是加号:+

Oracle查询如下所示:

Select

‘Name’

||

‘Last

Name’

From

tableName

对应的SQL

Server查询如下所示:

Select

‘Name’

+

‘Last

Name’

以上就是关于PB内置Oracle数据库接口的使用方法[1]全部的内容,包括:PB内置Oracle数据库接口的使用方法[1]、在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)、oracle数据库,查询到的结果怎样修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9656889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存