关于Change_Tracking

CHANGE_TRACKING_IS_COLUMN_IN_MASK ( column_id , change_columns )

 column_id :这个参数是被跟踪的列(column),这个id可以从COLUMNPROPERTY 函数里头弄到。

 change_columns: 这个参数就是从CHANGETABLE 函数里头返回的SYS_CHANGE_COLUMNS。

返回值:

Return value

Description

0

The specified column is not in the change_columns list.

1

The specified column is in the change_columns list.


SYS_CHANGE_COLUMNS 只有当操作为 “Update” 的时候才会有返回值,Insert 和 Delete 都会返回NULL。

例子,省略了很多创建数据库/表等步骤:

select 
[col3_update?] = CHANGE_TRACKING_IS_COLUMN_IN_MASK(COLUMNPROPERTY(OBJECT_ID(N'dbo.tb'),'col3','ColumnId'), SYS_CHANGE_COLUMNS) 

from changetable(changes dbo.tb,0) as CC

数据库为 dbo.tb;查第三列;返回"ColumnId"的值 (感觉主要的作用是确认该列)。


 
   

如果在 Oracle 数据库中查询 v$backup_block_change_tracking 视图时出现“视图或表不存在”的错误,可能是以下原因之一: 1. 该视图不存在。请确保该视图名称正确,且该视图在当前用户下存在。如果视图不存在,你需要检查数据库版本是否支持该视图,或者是否需要安装相应的插件或扩展包。 2. 你没有访问该视图的权限。请检查你的用户权限是否足够查询该视图。你可以使用以下命令检查你的用户是否有访问该视图的权限: ``` SELECT * FROM user_tab_privs WHERE table_name = 'V$BACKUP_BLOCK_CHANGE_TRACKING'; ``` 如果该命令返回结果为空,则表示你没有访问该视图的权限。你可以使用以下命令授予相应的权限: ``` GRANT SELECT ON v$backup_block_change_tracking TO your_user; ``` 其中 your_user 是你的用户名。 3. Block Change Tracking(BCT)没有启用。如果 BCT 没有启用,则该视图不可用。你可以使用以下命令检查 BCT 是否已经启用: ``` SELECT status FROM v$block_change_tracking; ``` 如果返回的状态为 ENABLED,则表示 BCT 已经启用。如果状态为 DISABLED,则需要通过以下命令启用 BCT: ``` ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; ``` 请注意,v$backup_block_change_tracking 视图只在启用 BCT 之后才可用,并且只包含最后一次备份之后更改的数据块的信息。如果你仍然无法访问该视图,请检查数据库版本和配置,或者参考 Oracle 官方文档以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值