如何获取oracle中所有的数据修改历史记录

如何获取oracle中所有的数据修改历史记录,第1张

这不可能,dml语句本身就不记录日志(我说的是 *** 作日志)。所以除非自己做相关的日志,比如用触发器做,可是这么做所有数据的触发器记录的成本太高。几乎不可能。
最好就是利用最小权限原则,能改的人才能改,其他人只能查,不能改。

1、首先打开oracle sql developer工具,没有此工具的可以去百度浏览器下载安装即可,鼠标菜单。

2、在二级菜单中,选择SQL历史记录选项,或者按快捷键F8打开窗口。

3、默认打开是会显示在最下方的小窗口,在标题栏双击鼠标左键,即可最大化窗口,再次双击左键还原窗口。

4、最大化窗口之后,便于更好的查询记录结果,可以看到,以往执行的sql记录都显示出来了可以往下翻动,查询自己需要的日志。

(1)查看权限,sys用户有对其他用户增删改的权限才行。如果没有,还确实需要用sys用户 *** 作,那么请用dba用户授权。
(2)如果权限没问题,那么在增删改的时候只要加上用户名就可以了。比如,用户a的table表。那么就是 insert into atable values ('''''''''''),删改也类似。

这个取决于你用的客户端是哪个,我平时用的是 DBArtisan 852,这个客户端里面有个 Logfile菜单,勾选SQL log之后,客户端就可以记录所有SQL *** 作,只需打开log就可以根据日期翻看所有SQL记录。 log里面有个设置文件大小的,我一般设置50M,大致可以存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’

数字取舍

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’


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

原文地址: http://outofmemory.cn/yw/13336458.html

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

发表评论

登录后才能评论

评论列表(0条)

保存