返回首页

gbase数据、南大通用产品文档:GBase8cPG_SECLABELS

更新日期:2024年09月11日

PG_SECLABELS 视图提供关于安全标签的信息。
名称
类型
引用
描述
objoid
oid
任意OID 属性
这个安全标签指向的对象的OI
D。
classoid
oid
PG_CLASS.oid
这个对象出现的系统表的OID。
objsubid
intege
r
-
对于一个在表字段上的安全标
签,是字段编号(引用表本身的
objoid 和classoid)。对于所有其
他对象类型,这个字段为0。
objtype
text
-
这个标签出现的对象的类型,文
本格式。
objnamespace
oid
PG_NAMESPACE.oid
这个对象的名称空间的OID,如
果适用;否则为NULL。
objname
text
-
这个标签适用的对象的名称,文
本格式。
provider
text
PG_SECLABEL.provider
与这个标签相关的标签提供者。
label
text
PG_SECLABEL.label
适用于这个对象的安全标签。

在右键菜单点击对象信息,即查看数据库的信息,如下图:

统一数据平台监控与运维系统用户手册
南大通用数据技术股份有限公司
- 143 -

rdefmtdate() 函数使用格式化掩码来将字符串转换为内部的 DATE 格式。

语法
mint rdefmtdate(jdate, fmtstring, inbuf)
int4 *jdate;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 854 -

char *fmtstring;
char *inbuf;
jdate
指向接收 inbuf 字符串的内部 DATE 值的 int4 整数值的指针。
fmtstring
指向包含要使用 inbuf 字符串的的格式化掩码的缓冲区的指针。
inbuf
指向包含要转换的日期字符串的缓冲区的指针。
用法
rdefmtdate() 函数的 fmtstring 参数指向日期格式化掩码,其包含描述
如何解释该日期字符串的格式。

input 字符串和 fmtstring 必须以相同的月份、日期和年份的序列顺序。然而,它们不
需要包含相同的文字,或月份、日期和年份的相同表示。

在 fmtstring 中,您可包括 weekday 格式(ww),但数据库服务器忽略该格式。inbuf
中没有与 weekday 格式对应的内容。

下列 fmtstring 与 input 的组合是有效的。
格式化掩码输入
mmddyy
Dec. 25th, 2007
mmddyyyy
Dec. 25th, 2007
mmm. dd. yyyy
dec 25 2007
mmm. dd. yyyy
DEC-25-2007
mmm. dd. yyyy
122507
mmm. dd. yyyy
12/25/07
yy/mm/dd

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 855 -

07/12/25
yy/mm/dd
2007, December 25
yy/mm/dd
In the year 2007, the month of December, it is the 25th day
dd-mm-yy
This 25th day of December 2007

如果存储在 inbuf 中的值是四位年份。则 rdefmtdate() 函数使用那个值。如果存储在
inbuf 中的值是两位年份,
则 rdefmtdate() 函数使用 DBCENTURY 环境变量的值来确定要
使用哪个世纪。如果您未设置 DBCENTURY,则 GBase 8s ESQL/C 使用 20 世纪。

返回代码
如果您使用无效的日期字符串格式,则 rdefmtdate() 返回错误代码,并将该内部的
DATE 设置为当前日期。下列为可能的返回代码。
0
操作成功。
-1204
*input 参数指定无效的年份。
-1205
*input 参数指定无效的月份。
-1206
*input 参数指定无效的日期。
-1209
由于 *input 不包含年份、月份和日期之间的定界符,则 *input 的长度必须恰好为 6
或 8 字节。
-1212
*fmtstring 未指定年份、月份和日期。

示例
demo 目录在 rdefmtdate.ec 文件中包含此样例程序。
/*
* rdefmtdate.ec *

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 856 -


The following program accepts a date entered from the console, converts it into the internal
date format using rdefmtdate(). It checks the conversion by finding the day of the week.
*/

#include

main()
{
mint x;
char date[20];
int4 i_date;
char *day_name;

static char fmtstr[9] = "mmddyyyy";

printf("RDEFMTDATE Sample ESQL Program running.\n\n");

printf("Enter a date as a single string, month.day.year\n");
gets(date);

printf("\nThe date string is %s.\n", date);

if (x = rdefmtdate(&i_date, fmtstr, date))
printf("Error %d on rdefmtdate conversion\n", x);
else
{
/* Figure out what day of the week i_date is */
switch (rdayofweek(i_date))
{
case 0: day_name = "Sunday";
break;
case 1: day_name = "Monday";

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 857 -

break;
case 2: day_name = "Tuesday";
break;
case 3: day_name = "Wednesday";
break;
case 4: day_name = "Thursday";
break;
case 5: day_name = "Friday";
break;
case 6: day_name = "Saturday";
break;
}
printf("\nThe day of the week is %s.\n", day_name);
}

printf("\nRDEFMTDATE Sample Program over.\n\n");
}
输出
RDEFMTDATE Sample ESQL Program running.

Enter a date as a single string, month.day.year
080894

The date string is 080894
The day of the week is Monday.
RDEFMTDATE Sample Program over.