目录
2.SQL语句实现的差别
3.使用Delphi时遇到的一些问题的解决办法
首页 数据库 mysql教程 DB Oracle与Access在开发中的不同之处

DB Oracle与Access在开发中的不同之处

Jun 07, 2016 pm 03:31 PM
access oracle 不同 函数 开发

1. 函数名称的 不同 功能 Oracle Access 字符函数: 返回字符的 ASCII 码 ASCII(x) ASC(x) 返回 ASCII 为 X 的字符 CHR(x) CHR(x) 式化字符串 To_Char( x, format ) Format(x, format) 转换字母大小写 LOWER(x)UPPER(x) LCASE(x)UCASE(x) 求字符串长度 LENGT

1.函数名称的不同

功能

Oracle

Access

字符函数:

 

 

       返回字符的ASCII

ASCII(x)

ASC(x)

       返回ASCIIX的字符

CHR(x)

CHR(x)

       格式化字符串

To_Char( x, format )

Format(x, format)

       转换字母大小写

LOWER(x)  UPPER(x)

LCASE(x)  UCASE(x)

       求字符串长度

LENGTH(x)

LEN(x)

       去除字符串中的空格

LTRIM(x[, trim_string]),

RTRIM(x[,trim_string])

TRIM([trim_string From ]x)

LTRIM(x)

RTRIM(x)

TRIM(x)

       取子字符串

SUBSTR(x, start[,length])

LEFT(x, length)

MID(x,start,length)

RIGHT(x,length)

转换函数:

 

 

       如果Xsearch相等,返回result,否则,返回default

Decode(x, search,result,default)

IIF(x=search, result, default)

       将数字转换为字符串

To_Char(x)

CStr(x)

       将字符串转换为数字

To_Number(x)

CDbl()    --转换为dbouble 
CInt()    --
转换为int 
CLng()    --
转换为long int 
CBool()   --
转换为boolean

       如果ColName为空,返回result,否则,返回ColName的值。

NVL(ColName, result)

IIF(IsNull(ColName), result, ColName)

日期函数:

 

 

       当前系统时间(日期小时分秒)

sysdate

NOW()

       当前日期

Trunc(sysdate)

DATE()

       当前时间

--

TIME()

       返回时间的某个部分

To_Char( sysdate, ‘yyyy’ )

To_Char( sysdate, ‘mm’ )

To_Char( sysdate, ‘dd’ )

To_Char( sysdate, ‘hh’ )

To_Char( sysdate, ‘mi’ )

To_Char( sysdate, ‘ss’ )

Extract( Year From Sysdate )

Extract(  Month From Sysdate)

Extract(  Day From Sysdate)

Extract(  Hour From TimeStamp '2007-09-27 0:0:0')

Extract(  Minute From TimeStamp '2007-09--27 23:59:59')

Year(now())

Month(now())

Day(now())

Hour(now())

Minute(now())

Second(now())

DatePart(format, now())

       将字符串转换为日期

To_Date( x, format )

CDate(x )

#date_string#

 

2.SQL语句实现的差别

1Oracle支持连续的Left Join,但是Access不支持。

       Access实现Oracle的连续两个Left Join的方法:

       Select * From TblA Left Join

(Select * From TblB Left Join TblC )

 

2Access给字段起别名是必须用AS,但是Oracle不用AS也可以,建议起别名全部都用AS

 

3Oracle可以使用 Select Count( Distinct ColumnName ) From…..的语法,但是Access中不可以。Access中要实现这样的功能,要使用嵌套查询:

       Select Count(*) From

( Select Distinct ColumnName From Tbl….)

 

4Oracle中,如果TblA Left Join TblB,那么结果集是TblA中数据的数量。但是在Access中,TblA Left Join TblB,结果集的数量是TblA* TblB的数量。

 

5、在Oracle中,用一条SQL向一个递增的字段插入数据可以使用如下SQL

       Insert Into TblA ( N_ID ) Values ( ( Select ( Nvl( Max(N_ID), 0 )+1 ) from TblA ) );

但是由于函数的不同,在Access中需要使用下面的SQL

Insert Into TblA( N_ID ) Values ( IIF( IsNull(DLookUp( ‘Max(N_ID)+1’, ‘TblA’, ‘’ )  ), 1, DLookUp( ‘Max(N_ID)+1’, ‘TblA’, ‘’ ) ) );

 

DLookUpAccess的一个内置的函数,使用方法为:

DLookup("字段名称" , "表或查询名称" , "条件")

返回的结果为:从根据“条件”,从“表或查询名称”中查出“字段名称”的值。


3.使用Delphi时遇到的一些问题的解决办法

1、不正常地定义参数对象。提供了不一致或不完整的信息

       这个错误经常出现在操作Access数据库的日期字段时发生。原因为,Delphi默认将:X认为是一个参数,而Access中的时间可以表示为#2007-01-01 10:11:12#,这样,Delphi在解析这个字符串时会出问题。

       解决方法有两个:

       1 在给TADOQuery对象的SQL属性赋值前,先调用qry.ParamCheck := True;然后再执行后续操作。在操作完成后,执行qry.ParamCheck := False,恢复默认设置。

 

       2 SQL语句中,将日期类型的字段全部作为参数来操作,例如:

       sSql := ‘Insert Into TblA ( D_Date ) values (:D_Date)’;

       qry.SQL.Text := sSql;

       qry.ParamByName(‘D_Date’).Value := DateValue;

 

2、类似于“不可更新的查询”的错误。

       Access数据库是只读的,更改使其为可写即可。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

deepseek怎么转换pdf deepseek怎么转换pdf Feb 19, 2025 pm 05:24 PM

DeepSeek 无法直接将文件转换为 PDF。根据文件类型,可以使用不同方法:常见文档(Word、Excel、PowerPoint):使用微软 Office、LibreOffice 等软件导出为 PDF。图片:使用图片查看器或图像处理软件保存为 PDF。网页:使用浏览器“打印成 PDF”功能或专用的网页转 PDF 工具。不常见格式:找到合适的转换器,将其转换为 PDF。选择合适的工具并根据实际情况制定方案至关重要。

如何在Node.js环境中解决第三方接口返回403的问题? 如何在Node.js环境中解决第三方接口返回403的问题? Mar 31, 2025 pm 11:27 PM

在Node.js环境中解决第三方接口返回403的问题当我们在使用Node.js调用第三方接口时,有时会遇到接口返回403错误�...

Laravel Redis连接共享:为何select方法会影响其他连接? Laravel Redis连接共享:为何select方法会影响其他连接? Apr 01, 2025 am 07:45 AM

Laravel框架中Redis连接的共享与select方法的影响在使用Laravel框架和Redis时,开发者可能会遇到一个问题:通过配置...

Redstone/RED币上市价格预测与代币经济学详解 Redstone/RED币上市价格预测与代币经济学详解 Mar 03, 2025 pm 10:42 PM

此次Redstone代币$RED将于币安TGE且上线binancelaunchpool!这也是币安第一次推出盘前交易涨停板的机制!首日限200%,3天后解禁,避免「开盘即巅峰」!Launchpool机制介绍参与Redstone的BinanceLaunchpool需要质押指定的代币(BNB、USDC、FDUSD)活动期限为48小时:2025年2月26日08:00UTC至2025年2月28日08:00UTC结束本次盘前涨停板规则:2025年02月28日18:00

Debian上Oracle安全设置怎么做 Debian上Oracle安全设置怎么做 Apr 02, 2025 am 07:48 AM

强化Debian系统上Oracle数据库的安全,需要多方面入手。以下步骤提供一个安全配置的框架:一、Oracle数据库安装与初始配置系统准备:确保Debian系统已更新至最新版本,网络配置无误,并安装所有必需的软件包。建议参考官方文档或可靠的第三方资源进行安装。用户与组:创建专用Oracle用户组(如oinstall,dba,backupdba),并为其设置合适的权限。二、安全限制设置资源限制:编辑/etc/security/limits.d/30-oracle.conf文

在Node环境中如何避免第三方接口返回403错误? 在Node环境中如何避免第三方接口返回403错误? Apr 01, 2025 pm 02:03 PM

Node环境下如何避免第三方接口返回403错误在使用Node.js调用第三方网站接口时,有时会遇到返回403错误的问题。�...

使用Go语言连接Oracle数据库时是否需要安装Oracle客户端? 使用Go语言连接Oracle数据库时是否需要安装Oracle客户端? Apr 02, 2025 pm 03:48 PM

使用Go语言连接Oracle数据库时是否需要安装Oracle客户端?在使用Go语言开发时,连接Oracle数据库是一个常见需求�...

Oracle PL/SQL Deep Dive:掌握过程,功能和软件包 Oracle PL/SQL Deep Dive:掌握过程,功能和软件包 Apr 03, 2025 am 12:03 AM

OraclePL/SQL中的过程、函数和包分别用于执行操作、返回值和组织代码。1.过程用于执行操作,如输出问候语。2.函数用于计算并返回值,如计算两个数之和。3.包用于组织相关元素,提高代码的模块化和可维护性,如管理库存的包。

See all articles