返回首页

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

更新日期:2024年09月11日

使用CREATE TABLE 执行深层复制
该方法使用CREATE TABLE 语句创建原始表的副本,将原始表的数据填充至副本并重
命名副本,以完成原始表的复制。
在创建新表时,可以指定表以及列属性,比如主键。
操作步骤
执行以下步骤对表customer_t 进行深层复制。
步骤1 使用CREATE TABLE 语句创建表customer_t 的副本customer_t_copy。
postgres=# CREATE TABLE customer_t_copy
( c_customer_sk
integer,
c_customer_id
char(5),
c_first_name char(6),
c_last_name char(8)
) ;
步骤2 使用INSERT INTO…SELECT 语句向副本填充原始表中的数据。
postgres=# INSERT INTO customer_t_copy (SELECT * FROM customer_t);
步骤3 删除原始表。
postgres=# DROP TABLE customer_t;
步骤4 使用ALTER TABLE 语句将副本重命名为原始表名称。
postgres=# ALTER TABLE customer_t_copy RENAME TO customer_t;
----结束

功能描述
删除一个过程语言。单机和集中式暂不支持删除过程语言。
语法格式
DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]
参数说明

IF EXISTS
如果指定的过程语言不存在,那么发出一个notice 而不是抛出一个错误。

name
现存语言的名称。出于向下兼容的考虑,这个名字可以用单引号包围。

CASCADE
级联删除依赖于该语言的对象(比如该语言写的函数)


RESTRICT
如果存在依赖对象,则拒绝删除。这个是缺省。
示例
下面命令删除plsample 语言:

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1117
DROP LANGUAGE plsample;
兼容性
SQL 标准里没有DROP LANGUAGE 语句。

rstol() 函数将以空终止的字符串转换为 long integer 值。

语法

mint rstol(string, long_int)
char *string;
mlong *long_int;
string
指向以空终止的字符串的指针。
long_int
指向保存转换了的值的 mlong 值的指针。

用法

值的合法范围为 -2,147,483,647 - 2,147,483,647。值 -2,147,483,648 不是有效的,因为
此值为指示空的保留值。

返回代码
=0
转换成功。
!=0
转换失败。

示例
此样例程序在 demo 目录中的 rstol.ec 文件中。
/*

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

The following program tries to convert three strings to longs. It displays the result of each
attempt.
*/

#include

EXEC SQL include sqltypes;

main()
{
mint err;
mlong l;

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

l = 0;
printf("Converting String 'abc':\n");
if((err = rstol("abc", &l)) == 0)
printf("\tResult = %ld\n\n", l);
else
printf("\tError %d in conversion of string #1\n\n", err);

l = 0;
printf("Converting String '2147483646':\n");
if((err = rstol("2147483646", &l)) == 0)
printf("\tResult = %ld\n\n", l);
else
printf("\tError %d in conversion of string #2\n\n", err);

l = 0;
printf("Converting String '':\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 905 -
if((err = rstol("", &l)) == 0)
{
if(risnull(CLONGTYPE, (char *) &l))
printf("\tResult = NULL\n\n", l);
else
printf("\tResult = %ld\n\n", l);
}
else
printf("\tError %d in conversion of string #3\n\n", err);

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

Converting String 'abc':
Error -1213 in conversion of string #1

Converting String '2147483646':
Result = 2147483646

Converting String '':
Result = NULL
RSTOL Sample Program over.