华为云用户手册

  • enable_hotkeys_collection 参数说明:开关打开后,自动对数据库内的被访问的键值进行统计。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 如果是通过gs_guc set 方式设置参数,需要重启数据库使得GUC参数生效,重启数据库时会清理热点key信息。 当GUC参数关闭时,调用热点key查询结果将会返回空,并且提示GUC参数关闭。但是开关关闭时,热点key清理接口仍可以正常使用。 取值范围:布尔型 on表示开启计数功能。 off表示关闭计数功能。 默认值:off
  • 注意事项 在非阻塞连接上发送任何命令或数据之后,调用PQflush。如果返回1,则等待套接字变为读或写就绪。如果为写就绪状态,则再次调用PQflush。如果已经读到,调用PQconsumeInput,然后再次调用PQflush。重复,直到PQflush返回0。(必要检查读就绪并使用 PQconsumeInput 耗尽输入,因为服务器可能会阻止尝试向客户端发送数据(例如 NOTICE 消息),并且在客户端读取它的数据之前不会读取客户端的数据。)一旦PQflush返回0,就等待套接字准备好,然后按照上面描述读取响应。
  • GS_JOB_ARGUMENT GS_JOB_ARGUMENT系统表提供了DBE_SCHEDULER定时任务和程序的参数属性。 表1 GS_JOB_ARGUMENT字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 argument_position integer 定时任务或程序的参数位置。 argument_type name 定时任务或程序的参数类型。 job_name text 定时任务或程序名。 argument_name text 定时任务或程序的参数名(定时任务继承了程序的参数名,所以为空)。 argument_value text 定时任务的参数值(程序本身无法绑定值)。 default_value text 程序的参数默认值。 父主题: 系统表
  • MY_TAB_PARTITIONS MY_TAB_PARTITIONS视图显示当前用户下所有分区的信息。当前用户下每个分区表的每个分区都会在USER_TAB_PARTITIONS中有一条记录。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_TAB_PARTITIONS字段 名称 类型 描述 table_owner character varying(64) 分区表的所有者名称。 table_name character varying(64) 分区表的名称。 partition_name character varying(64) 分区的名称。 high_value text 分区的上边界。 tablespace_name name 分区的表空间名称。 schema character varying(64) 分区表的模式。 父主题: 系统视图
  • 示例 1 2 3 4 5 6 7 8 --创建my_server。 openGauss=# CREATE SERVER my_server FOREIGN DATA WRAPPER log_fdw; --修改外部服务的名称。 openGauss=# ALTER SERVER my_server RENAME TO my_server_1; --删除my_server_1。 openGauss=# DROP SERVER my_server_1;
  • 注意事项 只有server的所有者或者被授予了server的ALTER权限的用户才可以执行ALTER SERVER命令,系统管理员默认拥有该权限。但要修改server的所有者,当前用户必须是该server的所有者或者系统管理员,且该用户是新所有者角色的成员。 OPTIONS中的敏感字段(如password、secret_access_key)在使用多层引号时,语义和不带引号的场景是不同的,因此不会被识别为敏感字段进行脱敏。
  • 语法格式 修改外部服务的参数。 1 2 ALTER SERVER server_name [ VERSION 'new_version' ] [ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ]; 在OPTIONS选项里,ADD、SET和DROP指定要执行的操作,未指定时默认为ADD操作。option和value为对应操作的参数。 修改外部服务的所有者。 1 2 ALTER SERVER server_name OWNER TO new_owner; 修改外部服务的名称。 1 2 ALTER SERVER server_name RENAME TO new_name;
  • 参数说明 修改server的参数如下所示: server_name 所修改的server的名称。 new_version 修改后server的新版本名称。 OPTIONS 更改该服务器的选项。ADD、SET和 DROP指定要执行的动作。如果没有显式地指定操作, 将会假定为ADD。选项名称必须唯一,名称和值也会使用该服务器的外部数据封装器库进行验证。 encrypt 是否对数据进行加密,该参数仅支持在type为OBS时设置。默认值为off。 取值范围: on表示对数据进行加密。 off表示不对数据进行加密。 access_key OBS访问协议对应的AK值(OBS云服务界面由用户获取),创建外表时AK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。 secret_access_key OBS访问协议对应的SK值(OBS云服务界面由用户获取),创建外表时SK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。 new_owner 修改后server的新拥有者。更改所有者,你必须是外部服务器的所有者并且也是新的所有者角色的直接或者间接成员,并且你必须对外部服务器的外部数据封装器有USAGE权限。 new_name 修改后server的新名称。
  • 参数说明 IF EXISTS 如果指定的模式不存在,发出一个notice而不是抛出一个错误。 schema_name 模式的名称。 取值范围:已存在模式名。 CASCADE | RESTRICT CASCADE:自动删除包含在模式中的对象。 RESTRICT:如果模式包含任何对象,则删除失败(缺省行为)。 不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。 无法删除当前模式。如果要删除当前模式,须切换到其他模式下。
  • 注意事项 当enable_access_server_directory=off时,只允许初始用户删除directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 --建表 openGauss=# CREATE SCHEMA hr; openGauss=# SET CURRENT_SCHEMA = hr; openGauss=# CREATE TABLE staffs ( section_id INTEGER, salary INTEGER ); openGauss=# INSERT INTO staffs VALUES (30, 10); openGauss=# INSERT INTO staffs VALUES (30, 20); --创建存储过程proc_staffs openGauss=# CREATE OR REPLACE PROCEDURE proc_staffs ( section NUMBER(6), salary_sum out NUMBER(8,2), staffs_count out INTEGER ) IS BEGIN SELECT sum(salary), count(*) INTO salary_sum, staffs_count FROM hr.staffs where section_id = section; END; / --创建存储过程proc_return. openGauss=# CREATE OR REPLACE PROCEDURE proc_return AS v_num NUMBER(8,2); v_sum INTEGER; BEGIN proc_staffs(30, v_sum, v_num); --调用语句 dbe_output.print_line(v_sum||'#'||v_num); RETURN; --返回语句 END; / --调用存储过程proc_return. openGauss=# CALL proc_return(); --清除存储过程 openGauss=# DROP PROCEDURE proc_staffs; openGauss=# DROP PROCEDURE proc_return; --创建函数func_return. openGauss=# CREATE OR REPLACE FUNCTION func_return returns void language plpgsql AS $$ DECLARE v_num INTEGER := 1; BEGIN dbe_output.print_line(v_num); RETURN; --返回语句 END $$; -- 调用函数func_return openGauss=# CALL func_return(); -- 清除函数 openGauss=# DROP FUNCTION func_return; -- 清除当前数据库模式 openGauss=# DROP SCHEMA hr CASCADE;
  • restart_after_crash 参数说明:设置为on,后端进程崩溃时, GaussDB 将自动重新初始化此后端进程。 该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 取值范围:布尔型 on表示能够最大限度地提高数据库的可用性。 在某些情况(比如当采用管理工具(例如xCAT)管理GaussDB时),能够最大限度地提高数据库的可用性。 off表示能够使得管理工具在后端进程崩溃时获取控制权并采取适当的措施进行处理。 默认值:on
  • omit_encoding_error 参数说明:设置为on,数据库的客户端字符集编码为UTF-8时,出现的字符编码转换错误将打印在日志中,有转换错误的被转换字符会被忽略,以"?"代替。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 取值范围:布尔型 on表示有转换错误的字符将被忽略,以"?"代替,打印错误信息到日志中。 off表示有转换错误的字符不能被转换,打印错误信息到终端。 默认值:off 若该参数通过执行gs_guc reload修改时,如果当前节点上的某个session的连接不是来自于客户端,而是来自于该节点所属集群上的其他节点,那么执行gs_guc reload后该参数在该session上不会立即生效,需与连接节点断开连接后重新连接才会生效。
  • retry_ecode_list 参数说明:指定SQL语句出错自动重试功能支持的错误类型列表。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 取值范围:字符串 默认值:YY001 YY002 YY003 YY004 YY005 YY006 YY007 YY008 YY009 YY010 YY011 YY012 YY013 YY014 YY015 53200 08006 08000 57P01 XX003 XX009 YY016
  • data_sync_retry 参数说明:控制当fsync到磁盘失败后是否继续运行数据库。由于在某些操作系统的场景下,fsync失败后重试阶段即使再次fsync失败也不会报错,从而导致数据丢失。 该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。 取值范围:布尔型 on表示当fsync同步到磁盘失败后采取重试机制,数据库继续运行。 off表示当fsync同步到磁盘失败后直接报panic,停止数据库。 默认值:off
  • remote_read_mode 参数说明:远程读功能开关。读取主机上的页面失败时可以从备机上读取对应的页面。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 off表示关闭远程读功能。 non_authentication表示开启远程读功能,但不进行证书认证。 authentication表示开启远程读功能,但要进行证书认证。 默认值:authentication
  • GLOBAL_STATIO_ALL_TABLES GLOBAL_STATIO_ALL_TABLES视图将包含各节点的数据库中每个表(包括TOAST表)的I/O的统计。 表1 GLOBAL_STATIO_ALL_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表OID。 schemaname name 该表模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 该表缓存命中数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 该表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 该表的TOAST表命中缓冲区数(如果存在)。 tidx_blks_read bigint 该表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 该表的TOAST表索引命中缓冲区数(如果存在)。 父主题: Cache/IO
  • STAT_USER_FUNCTIONS STAT_USER_FUNCTIONS视图显示命名空间中用户自定义函数(函数语言为非内部语言)的状态信息。 表1 STAT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数标识。 schemaname name schema的名称。 funcname name 用户function的名称。 calls bigint 函数被调用的次数。 total_time double precision 调用此function的总时间花费,包含调用其它function的时间(单位:毫秒)。 self_time double precision 调用此function自己时间的花费,不包含调用其它function的时间(单位:毫秒)。 父主题: Object
  • 示例 注:示例1和示例2选择其一。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 public class SSL{ public static void main(String[] args) { Properties urlProps = new Properties(); String urls = "jdbc:postgresql://$ip:$port/postgres"; String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); /** * ================== 示例1 使用NonValidatingFactory通道 */ urlProps.setProperty("sslfactory","org.postgresql.ssl.NonValidatingFactory"); urlProps.setProperty("user", userName); urlProps.setProperty("password", password); urlProps.setProperty("ssl", "true"); /** * ================== 示例2 使用证书 */ urlProps.setProperty("sslcert", "client.crt"); urlProps.setProperty("sslkey", "client.key.pk8"); urlProps.setProperty("sslrootcert", "cacert.pem"); urlProps.setProperty("user", userName); urlProps.setProperty("ssl", "true"); /* sslmode可配置为:require、verify-ca、verify-full,以下三个示例选择其一*/ /* ================== 示例2.1 设置sslmode为require,使用证书 */ urlProps.setProperty("sslmode", "require"); /* ================== 示例2.2 设置sslmode为verify-ca,使用证书 */ urlProps.setProperty("sslmode", "verify-ca"); /* ================== 示例2.3 设置sslmode为verify-full,使用证书(Linux下验证) */ urls = "jdbc:postgresql://world:8000/postgres"; urlProps.setProperty("sslmode", "verify-full"); try { Class.forName("org.postgresql.Driver").newInstance(); } catch (Exception e) { e.printStackTrace(); } try { Connection conn; conn = DriverManager.getConnection(urls,urlProps); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } /** * 注:将客户端密钥转化为DER格式: * openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt * openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-MD5-DES * openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-SHA1-3DES * 以上算法由于安全级别较低,不推荐使用。 * 如果客户需要采用更高级别的私钥加密算法,启用bouncycastle或者其他第三方私钥解密密码包后可以使用的私钥加密算法如下: * openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 AES128 * openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 aes-256-cbc -iter 1000000 * openssl pkcs8 -in client.key -topk8 -out client.key.der -outform Der -v2 aes-256-cbc -v2prf hmacWithSHA512 * 启用bouncycastle:使用jdbc的项目引入依赖:bcpkix-jdk15on.jar包,版本建议:1.65以上。 */
  • 伪类型 GaussDB数据类型中包含一系列特殊用途的类型,这些类型按照类别被称为伪类型。伪类型不能作为字段的数据类型,但是可以用于声明函数的参数或者结果类型。 当一个函数不仅是简单地接受并返回某种SQL数据类型的情况下伪类型是很有用的。表1列出了所有的伪类型。 表1 伪类型 名称 描述 any 表示函数接受任何输入数据类型。 anyelement 表示函数接受任何数据类型。 anyarray 表示函数接受任意数组数据类型。 anynonarray 表示函数接受任意非数组数据类型。 anyenum 表示函数接受任意枚举数据类型。 anyrange 表示函数接受任意范围数据类型。 cstring 表示函数接受或者返回一个空结尾的C字符串。 internal 表示函数接受或者返回一种服务器内部的数据类型。 language_handler 声明一个过程语言调用句柄返回language_handler。 fdw_handler 声明一个外部数据封装器返回fdw_handler。 record 标识函数返回一个未声明的行类型。 trigger 声明一个触发器函数返回trigger。 void 表示函数不返回数值。 opaque 一个已经过时的类型,以前用于所有上面这些用途。 声明用C编写的函数(不管是内置的还是动态装载的)都可以接受或者返回任何这样的伪数据类型。当伪类型作为参数类型使用时,用户需要保证函数的正常运行。 用过程语言编写的函数只能使用实现语言允许的伪类型。目前,过程语言都不允许使用作为参数类型的伪类型,并且只允许使用void和record作为结果类型。一些多态的函数还支持使用anyelement、anyarray、anynonarray、anyenum和anyrange类型。 伪类型internal用于声明只能在数据库系统内部调用的函数,这些函数不能直接在SQL查询里调用。如果函数至少有一个internal类型的参数,则不能从SQL里调用。建议不要创建任何声明返回internal的函数,除非至少有一个internal类型的参数。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --创建表。 openGauss=# create table t1 (a int); --插入两条数据。 openGauss=# insert into t1 values(1),(2); --创建函数showall()。 openGauss=# CREATE OR REPLACE FUNCTION showall() RETURNS SETOF record AS $$ SELECT count(*) from t1; $$ LANGUAGE SQL; --调用函数showall()。 openGauss=# SELECT showall(); showall --------- (2) (1 row) --删除函数。 openGauss=# DROP FUNCTION showall(); --删除表。 openGauss=# drop table t1; 父主题: 数据类型
  • CM相关参数 CM相关参数的修改对GaussDB的运行机制有影响,建议由GaussDB的工程师协助修改。修改CM相关参数的方法,请参考表2中方式一进行设置。 cm_agent相关参数可通过cm_agent数据目录下的cm_agent.conf文件查看,cm_server相关参数可通过cm_server数据目录下的cm_server.conf文件查看。 cm_agent参数 cm_server参数 父主题: GUC参数说明
  • GS_DB_PRIVILEGE GS_DB_PRIVILEGE系统表记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roleid oid 用户标识。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option boolean 是否具有privilege_type列记录的ANY权限的再授权权限。 t:表示具有。 f:表示不具有。 父主题: 系统表
  • PGXC_GROUP PGXC_GROUP系统表存储节点组信息。 表1 PGXC_GROUP字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 group_name name 节点组名称。 in_redistribution "char" 是否需要重分布。取值包括: n:表示NodeGroup没有再进行重分布。 y:表示NodeGroup是重分布过程中的源节点组。 t:表示NodeGroup是重分布过程中的目的节点组。 group_members oidvector_extend 节点组的节点OID列表。 group_buckets text 分布数据桶的集合。 is_installation boolean 是否安装子集群。 t(true):表示安装。 f(false):表示不安装。 group_acl aclitem[] 访问权限。 group_kind "char" node group类型,取值包括: i:表示installation node group。 n:表示普通集群node group。 e:表示弹性集群。 group_parent oid 如果是子node group,该字段表示父node group的OID,如果是父node group,该字段值为空。 父主题: 系统表
  • GS_AUDITING_POLICY_AC CES S GS_AUDITING_POLICY_ACCESS系统表记录与DML数据库相关操作的统一审计信息。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_AUDITING_POLICY_ACCESS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 accesstype name DML数据库操作相关类型。例如SELECT、INSERT、DELETE等。 labelname name 资源标签名称。对应系统表GS_AUDITING_POLICY中的polname字段。 policyoid oid 所属审计策略的oid。对应系统表GS_AUDITING_POLICY中的oid。 modifydate timestamp without time zone 创建或修改的最新时间戳。 父主题: 系统表
  • PG_COMM_STATUS PG_COMM_STATUS视图展示单个DN的通信库状态。 表1 PG_COMM_STATUS字段 名称 类型 描述 node_name text 节点名称。 rxpck_rate integer 节点通信库接收速率,单位Byte/s。 txpck_rate integer 节点通信库发送速率,单位Byte/s。 rxkbyte_rate bigint bigint节点通信库接收速率,单位KByte/s。 txkbyte_rate bigint bigint节点通信库发送速率,单位KByte/s。 buffer bigint cmailbox的buffer大小。 memkbyte_libcomm bigint libcomm进程通信内存大小,单位Byte。 memkbyte_libpq bigint libpq进程通信内存大小,单位Byte。 used_pm integer postmaster线程实时使用率。 used_sflow integer gs_sender_flow_controller线程实时使用率。 used_rflow integer gs_receiver_flow_controller线程实时使用率。 used_rloop integer 多个gs_receivers_loop线程中高的实时使用率。 stream integer 当前使用的逻辑连接总数。 父主题: 系统视图
  • PGXC_STAT_BAD_BLOCK PGXC_STAT_BAD_BLOCK视图显示集群所有节点从启动后,在读取数据时出现Page/CU校验失败的统计信息。该视图只有monitor admin和sysadmin权限可以查看。 表1 PGXC_STAT_BAD_BLOCK字段 名称 类型 描述 nodename text 节点名。 databaseid integer 数据库OID。 tablespaceid integer 表空间OID。 relfilenode integer 文件对象ID。 forknum integer 文件类型。取值如下: 0:数据主文件。 1:FSM文件。 2:VM文件。 3:BCM文件。 error_count integer 出现校验失败的次数。 first_time timestamp with time zone 第一次出现的时间。 last_time timestamp with time zone 最近一次出现的时间。 父主题: 系统视图
  • ADM_SEQUENCES ADM_SEQUENCES视图显示数据库下的所有序列信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SEQUENCES字段 名称 类型 描述 sequence_owner character varying(64) 序列的所有者。 sequence_name character varying(64) 序列名称。 min_value int16 序列的最小值。 max_value int16 序列的最大值。 increment_by int16 序列的递增值。 last_number int16 上一序列的值。 cache_size int16 序列磁盘缓存大小。 cycle_flag character(1) 表示序列是否是循环序列,取值为Y或N: Y表示是循环序列。 N表示不是循环序列。 父主题: 系统视图
  • PG_CAST PG_CAST系统表存储数据类型之间的转化关系。 表1 PG_CAST字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 castsource oid 源数据类型的OID。 casttarget oid 目标数据类型的OID。 castfunc oid 转化函数的OID。如果为零表明不需要转化函数。 castcontext "char" 源数据类型和目标数据类型间的转化方式: 'e':表示只能进行显式转化(使用CAST或::语法)。 'i':表示能进行隐式转化。 'a':表示类型间同时支持隐式和显式转化。 castmethod "char" 转化方法: 'f':使用castfunc字段中指定的函数进行转化。 'b':类型间是二进制强制转化,不使用castfunc。 父主题: 系统表
  • 二进制类型 GaussDB支持的二进制类型请参见表1。 表1 二进制类型 名称 描述 存储空间 BLOB 二进制大对象 目前BLOB支持的外部存取接口仅为: DBE_LOB.GET_LENGTH DBE_LOB.READ DBE_LOB.WRITE DBE_LOB.WRITE_APPEND DBE_LOB.COPY DBE_LOB.ERASE 这些接口详细说明请参见DBE_LOB。 最大为32TB(即35184372088832字节)。 RAW 变长的十六进制类型。 4字节加上实际的十六进制字符串。最大为1GB-8203字节(即1073733621字节)。 BYTEA 变长的二进制字符串。 4字节加上实际的二进制字符串。最大为1GB-8203字节(即1073733621字节)。 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-8203字节(即1073733621字节)。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 --创建表。 openGauss=# CREATE TABLE blob_type_t1 ( BT_COL1 INTEGER, BT_COL2 BLOB, BT_COL3 RAW, BT_COL4 BYTEA ) DISTRIBUTE BY REPLICATION; --插入数据。 openGauss=# INSERT INTO blob_type_t1 VALUES(10,empty_blob(), HEXTORAW('DEADBEEF'),E'\\xDEADBEEF'); --查询表中的数据。 openGauss=# SELECT * FROM blob_type_t1; bt_col1 | bt_col2 | bt_col3 | bt_col4 ---------+---------+----------+------------ 10 | | DEADBEEF | \xdeadbeef (1 row) --删除表。 openGauss=# DROP TABLE blob_type_t1; 父主题: 数据类型
  • 基本语句 在编写PL/SQL过程中,会定义一些变量,给变量赋值,调用其他存储过程等。介绍PL/SQL中的基本语句,包括定义变量、赋值语句、调用语句以及返回语句。 尽量不要在存储过程中调用包含密码的SQL语句,因为存储在数据库中的存储过程文本可能被其他有权限的用户看到导致密码信息被泄漏。如果存储过程中包含其他敏感信息也需要配置存储过程的访问权限,保证敏感信息不会泄漏。 定义变量 赋值语句 调用语句 父主题: 存储过程
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全