检查sybase中的status2值

2020-09-22 08:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用以下查询在sybase中获取status2值

 从sysdatabases中选择名称,状态,status2  

获取status2值后,我将其转换为16位二进制值,并检查第4位和第5位以检查数据库是否脱机。 当数据库已将日志满时中止传输设置为true,并且status2的值为-32767时,就会出现此问题。 这会将所有位设置为1。我遵循的检查数据库是否脱机的方法正确吗?

我正在使用以下文档作为参考 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36274.1550/html/tables/X42615.htm

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用以下查询在sybase中获取status2值

 从sysdatabases中选择名称,状态,status2  

获取status2值后,我将其转换为16位二进制值,并检查第4位和第5位以检查数据库是否脱机。 当数据库已将日志满时中止传输设置为true,并且status2的值为-32767时,就会出现此问题。 这会将所有位设置为1。我遵循的检查数据库是否脱机的方法正确吗?

我正在使用以下文档作为参考 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36274.1550/html/tables/X42615.htm

付费偷看设置
发送
2条回答
宇峰Kouji
1楼 · 2020-09-22 08:59.采纳回答

Vikas,您好,

我不知道为什么您会看到所有的位都为1。也许您应该发布所做工作的实际输出?


1>创建数据库测试
2>进行(请求了1536个逻辑页)。
数据库'test' 现在在线。

1>从sysdatabases中选择convert(binary(2),status2),status2,其中name =" test"
2> go
status2
------ ------ -
0x8000 -32768

(受影响的1行)
1> sp_dboption测试," abort tran",true
2> go
数据库选项" test"的数据库选项" abort tran on log full"已打开。 >在数据库'test'上运行CHECKPOINT,以使选项'ablog tran on log full'生效。
(返回状态= 0)

1>选择convert(binary(2),status2), sysdatabases中的status2,其中name =" test"
2>去
status2
------ -------
0x8001 -32767

(受影响的1行)

要测试"离线"位是否打开,我将检查(status2&48> 0)

-bret

宇峰科技
2楼-- · 2020-09-22 09:15
我在这里使用按位运算符(请参阅

http://infocenter.sybase.com /help/topic/com.sybase.infocenter.dc36271.1600/doc/html/san1393050521805.html

以查看"离线"或"恢复过程中离线"(或两者同时) 。
status2&48如果两个位都不打开,则返回0;如果仅"离线"打开,则返回16;如果仅"恢复中的离线"打开,则返回32,
或48(如果两者均打开)。 因此,如果返回的值大于0,则数据库处于脱机状态。

从sysdatabases中选择名称,其中status2&48> 0-将返回所有脱机数据库的列表。

-bret

一周热门 更多>