shark-系统信息函数

本章节只包含shark插件新增的系统信息函数。

会话信息函数

  • @@FETCH_STATUS

    描述:返回最后一条游标FETCH语句的状态,该语句可以是针对连接当前打开的任何游标发出的。0表示FETCH成功,-1表示FETCH失败。

    返回值类型:int

    示例:

    select @@FETCH_STATUS;
    
  • @@ROWCOUNT

    描述:返回受上一句影响的行数。如果行数大于20亿,请使用ROWCOUNT_BIG()。

    返回值类型:int

    示例:

    select @@ROWCOUNT;
    
  • ROWCOUNT_BIG()

    描述:返回受上一句影响的行数。该函数的功能与@@ROWCOUNT类似,区别在于ROWCOUNT_BIG()的返回类型为bigint。

    返回值类型:bigint

    示例:

    select ROWCOUNT_BIG();
    
  • @@SPID

    描述:返回当前用户进程的会话ID。

    返回值类型:bigint

    示例:

    select @@SPID;
    

对象信息函数

  • object_id('[database_name.[schema_name]. | schema_name.]object_name' [, 'object_type'])

    描述:返回数据库对象的oid。如果没有查询权限或者对象不存在则返回NULL。

    第二个参数object_type支持以下类型

属性名称说明
S系统表
U用户表
V视图
SO序列
Ccheck约束
DDEAULTA约束
FFOREIGN KEY约束
PK主键约束
UQUNIQUE约束
AF聚合函数
FN函数
P存储过程
TR触发器
返回值类型:int

示例:

```
CREATE TABLE sys.students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INT DEFAULT 0,
    grade DECIMAL(5, 2)
);
set search_path = 'sys';
select object_id('students');
object_id 
-----------
16666
(1 row)

select object_id('sys.students', 'U');
object_id 
-----------
16666
(1 row)
```
  • objectproperty(oid, property)

    描述:返回插件框架中对象的对应属性结果。对象类型不符合返回NULL。

    property可选范围

    返回值类型:int

    表1 property属性表

属性名称对象类型说明
IsDefault任何对象返回0。
IsDefaultCnst任何对象是否为DEFAULT约束。1=True, 0=False
IsDeterministic函数返回0。
IsIndexed表、视图有索引的表或视图。1=True, 0=False
IsInlineFunction函数内联函数。1=True, 0=False
IsSysShipped任何对象sys框架下的对象。1=True, 0=False
IsPrimaryKey任何对象是否为PRIMARY KEY约束。1=True, 0=False
IsProcedure任何对象是否为存储过程。1=True, 0=False
IsRule任何对象返回0。
IsScalarFunction函数是否为标量值函数。1=True, 0=False
IsSchemaBound函数、视图返回0。
IsTable是否为表。1=True, 0=False
IsTableFunction函数是否为表值函数。1=True, 0=False
IsTrigger任何对象是否为触发器。1=True, 0=False
IsUserTable是否为用户表。1=True, 0=False
IsView视图是否为视图。1=True, 0=False
OwnerId任何对象返回对象所有者的oid。
ExeclsQuotedIdentOn函数、存储过程、触发器、视图返回1。
ExeclsIsAnsiNullsOn函数、存储过程、触发器、视图返回1。
TableFulltextPopulateStatus返回0。
TableHasVarDecimalStorageFormat返回0。
示例:
其中database为当前数据库

```
CREATE TABLE sys.students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INT DEFAULT 0,
    grade DECIMAL(5, 2)
);
set search_path = 'sys';
select objectproperty(object_id('students'), 'ownerid') as ownerid;
 ownerid 
---------
10
(1 row)
select objectproperty(object_id('sys.students'), 'istable') as ownerid;
 ownerid 
---------
1
(1 row)
select objectproperty(object_id('database.sys.students'), 'isview') as ownerid;
 ownerid 
---------
0
(1 row)
```
意见反馈
编组 3备份
    openGauss 2025-07-19 22:43:10
    取消