• [问题求助] GaussDB数据库如何实现资源的弹性伸缩,以应对动态变化的业务需求?
    GaussDB数据库如何实现资源的弹性伸缩,以应对动态变化的业务需求?
  • [问题求助] 说明GaussDB在处理海量数据和高并发访问时的性能优化策略。
    说明GaussDB在处理海量数据和高并发访问时的性能优化策略。
  • [问题求助] GaussDB如何支持跨数据中心的实时数据同步和容灾?
    GaussDB如何支持跨数据中心的实时数据同步和容灾?
  • [问题求助] 在华为云GaussDB中,如何进行数据的自动备份与恢复设置?
    在华为云GaussDB中,如何进行数据的自动备份与恢复设置?
  • [问题求助] 华为云GaussDB如何实现高可用性和故障恢复,具体机制是什么?
    华为云GaussDB如何实现高可用性和故障恢复,具体机制是什么?
  • [问题求助] GaussDB(for Cassandra)如何解决分布式数据库中常见的数据一致性问题?
    GaussDB(for Cassandra)如何解决分布式数据库中常见的数据一致性问题?
  • [问题求助] 如何评估GaussDB(for openGauss)在金融行业的性能和安全性优势?
    如何评估GaussDB(for openGauss)在金融行业的性能和安全性优势?
  • [问题求助] GaussDB(for MySQL)与开源MySQL相比,有哪些增强特性和优化?
    GaussDB(for MySQL)与开源MySQL相比,有哪些增强特性和优化?
  • [问题求助] 华为云GaussDB数据库系列主要包含哪些产品,各自针对什么样的应用场景?
    华为云GaussDB数据库系列主要包含哪些产品,各自针对什么样的应用场景?
  • [用户实践] 2024年5月—GaussDB—【FAQ】
    GaussDB上的数据迁移工具,哪个最快最安全?官方有提供迁移工具吗https://bbs.huaweicloud.com/forum/thread-0235152513637141039-1-1.htmlSQL语句中字段名大小写敏感问题https://bbs.huaweicloud.com/forum/thread-0235152446556420038-1-1.html存一些比较大的txt文件到GaussDB中,请问用CLOB性能好,还是BLOB性能好https://bbs.huaweicloud.com/forum/thread-0235152377915737034-1-1.htmlGaussDB归档后的数据怎么查询https://bbs.huaweicloud.com/forum/thread-0297152377824414027-1-1.htmlGaussDB能否通过配置,自动对数据进行归档https://bbs.huaweicloud.com/forum/thread-0220152377782748026-1-1.htmlGaussDB数据量比较大的话,是否也需要像mysql一样去做分区分库https://bbs.huaweicloud.com/forum/thread-0235152377574923033-1-1.htmlGaussDB有没有AES、3DES这种对称加密的原生函数https://bbs.huaweicloud.com/forum/thread-02127152377526461027-1-1.htmlGaussDB 有没有计算MD5的函数https://bbs.huaweicloud.com/forum/thread-0297152377487554026-1-1.htmlGaussDB处理并发的策略是什么?是锁行还是锁表,还是排队单线程执行https://bbs.huaweicloud.com/forum/thread-0235151898987533002-1-1.htmlGaussDB最大支持多少个并发https://bbs.huaweicloud.com/forum/thread-0266151898937111001-1-1.htmlGaussDB(for MySQL)跟直接用 MySQL 有什么区别吗?性能上两者差多少https://bbs.huaweicloud.com/forum/thread-0219151898877386002-1-1.htmlGaussDB for mysql 能否支持将数据全量迁移至本地的mysql? 用什么工具?https://bbs.huaweicloud.com/forum/thread-0297151898778266001-1-1.html通过裸金属服务部署Oracle RAC专题材料https://bbs.huaweicloud.com/forum/thread-0204151769503431005-1-1.html使用ideploy安装gaussdb 报错https://bbs.huaweicloud.com/forum/thread-0204151170622655005-1-1.html项目要将oracle库迁移为高斯数据库oracle模式,请问数据源配置该如何配?url前缀是什么?驱动名称是什么?应该引入哪个驱动jar包?https://bbs.huaweicloud.com/forum/thread-02106150774321287001-1-1.htmlGauss数据库中的存储过程有没有类似Oracle中sys.dbms_job.submit()后台提交作业的功能?https://bbs.huaweicloud.com/forum/thread-0289149330045409041-1-1.html项目部署最终使用GaussDB,开发测试直接用GaussDB还是用openGauss?https://bbs.huaweicloud.com/forum/thread-0289149309089748036-1-1.html
  • GaussDB数据库SQL系列-游标管理
    一、前言在数据库中,游标(cursor)是一种非常重要的工具,用于在数据库查询结果集中进行定位和操作。游标提供了一种在多行数据结果集中逐行处理每一行的机制,允许开发人员对每一行的数据进行操作,如检索、过滤、修改等。本文将结合GaussDB数据库,简单的给大家做一介绍。二、概述(GaussDB)1、游标概述在GaussDB数据库中,为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。2、游标的使用分类游标的使用分为显式游标和隐式游标。对于不同的SQL语句,游标的使用情况不同。序号SQL语句游标1结果是多行的查询语句显式的2非查询语句隐式的3结果是单行的查询语句隐式 / 显式显式游标:显式游标主要用于对查询语句的处理,尤其是在查询结果为多条记录的情况下。隐式游标:对于非查询语句,如修改、删除操作,则由系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名称为SQL,这是由系统定义的。游标循环:游标在WHILE语句、LOOP语句中的使用称为游标循环,一般这种循环都需要使用OPEN、FETCH和CLOSE语句。三、GaussDB中的显式游标(示例)1、显式游标的使用与操作步骤第一步,定义(声明)游标:定义一个游标名,以及与其相对应的SELECT语句。第二步,打开游标:执行游标所对应的SELECT语句,将其查询结果放入工作区,并且指针指向工作区的首部,标识游标结果集合。如果游标查询语句中带有FOR UPDATE选项,OPEN语句还将锁定数据库表中游标结果集合对应的数据行。第三步,提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。第四步,对该记录进行处理。第五步,继续处理,直到活动集合中没有记录。第六步,关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游标的工作区变成无效,不能再使用FETCH语句获取其中数据。关闭后的游标可以使用OPEN语句重新打开。2、显式游标示例--给工资大于等于20000的员工降薪500。--复制一张测试表CREATE TABLE company2 AS TABLE company1;CREATE OR REPLACE PROCEDURE cursor_p()ASDECLAREv_id NUMBER(6);v_salary NUMBER(8,2);CURSOR c1 IS SELECT id, salary FROM company2;BEGINOPEN c1;LOOPFETCH c1 INTO v_id, v_salary;EXIT WHEN c1%NOTFOUND;IF v_salary>=20000 THENUPDATE company2 SET salary =salary - 500 WHERE id = v_id;END IF;END LOOP;CLOSE c1;END;/--执行存储过程CALL cursor_p();--查看,比对结果变化SELECT t2.*,t1.salary as "降薪前" FROM company2 t2 LEFT JOIN company1 t1 ON t2.id=t1.id ORDER BY ID ASC;游标属性说明:%NOTFOUND是游标的属性之一,用于控制程序流程或者了解程序的状态。此处的意思是,当最近的DML(数据操作语言)操作(如INSERT,UPDATE,DELETE等)没有影响任何行时,该属性为真。也就是说,如果对表执行的操作没有找到任何匹配的行,那么这个属性就会为真,'EXIT WHEN c1%NOTFOUND;' 就会执行。执行结果:四、GaussDB中的隐式游标(示例)1、隐式游标简介对于隐式游标的操作,如定义、打开、取值及关闭操作,都由系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显式游标无关。2、隐式游标示例--创建临时表,删除已离职的员工Allen,如果Allen已经不存在,则新增一条新员工信息(重名)CREATE TABLE company3 AS TABLE company1;CREATE OR REPLACE PROCEDURE cursor_p1()ASDECLAREv_name VARCHAR(10) := 'Allen';BEGINDELETE FROM company3 WHERE name = v_name;--根据游标状态做进一步处理IF SQL%NOTFOUND THENINSERT INTO company3 VALUES(4,v_name,24,'China',30000);END IF;END;/--执行CALL cursor_p1();--查看,比对执行结果SELECT *, 'company1' as "company1" FROM company1 WHERE NAME ='Allen'union allSELECT *, 'company3' as "company3" FROM company3 WHERE NAME ='Allen'游标属性说明:SQL%NOTFOUND 是GaussDB数据库中的一个属性,用于检查最近的 SQL 语句是否对数据库没有任何影响。如果 SQL 语句没有找到任何匹配的记录,那么这个属性就为真。所以,本段SQL中的IF SQL%NOTFOUND THEN 这一行代码的意思是:如果最近的 SQL 语句没有找到任何匹配的记录,那么就执行后续的代码。通常,这个语句用于处理 SQL 查询可能找不到数据的情况。执行结果:五、小结在GaussDB数据库中,游标主要用于执行复杂的查询语句、处理多行数据以及进行数据操作等场景。游标的使用可以提高程序的灵活性和可维护性,并且可以减少不必要的内存消耗。使用游标,开发人员可以灵活地控制查询结果集的遍历顺序和处理方式,以满足不同的业务需求。——结束
  • [技术解读] GaussDB数据库SQL系列-定义重载函数
    一、前言在本文中,我们将介绍GaussDB数据库中的用户定义函数重载的概念、用法以及示例。用户定义函数是 SQL 中常用的“编程工具”,允许我们自定义函数来处理和操作数据。而函数重载则是指在一个数据库中定义多个具有相同名字但参数不同的函数,以此实现不同的功能。二、函数重载的定义函数重载是一种允许在同一个数据库中定义多个同名函数的特性。这些同名函数在参数类型、数量或顺序上有所不同,因此可以根据传入的参数的不同来调用不同的函数。通过函数重载,我们可以使用相同的函数名字来实现多个功能,提高了代码的可读性和重用性。三、GaussDB创建自定义重载函数的事项说明兼容PostgreSQL风格的函数或者带有PACKAGE属性的函数支持重载。在指定REPLACE的时候,如果参数个数、类型、返回值有变化,不会替换原有函数,而是会建立新的函数。不能创建仅形参名字不同(函数名和参数列表类型都一样)的重载函数。不支持形式参数仅在自定义ref cursor类型和sys_refcursor类型不同的重载。不支持仅返回的数据类型不同的函数重载。不支持仅默认值不同的函数重载。重载的函数在调用时变量需要明确具体的类型。PACKAGE表示该函数是否支持重载。不允许package函数和非package函数重载或者替换。package函数不支持VARIADIC类型的参数。不允许修改函数的package属性。四、GaussDB数据库中的自定义重载函数示例使用函数重载,我们可以根据具体情况选择不同的函数来实现不同的功能,使代码更加简洁和可读。示例一:创建package属性重载函数,根据不同的SQL条件获取生成视图1、根据员工姓名(参数)获取员工信息--根据员工姓名(参数)获取员工信息CREATE OR REPLACE FUNCTION f_test1_overload(c_name VARCHAR)RETURNS VOID PACKAGELANGUAGE plpgsqlAS $$DECLAREs_sql TEXT;BEGINs_sql := 'CREATE OR REPLACE VIEW v_company1 AS SELECT * FROM company1 where name=''' || c_name || '''' ;EXECUTE s_sql;END $$;--调用select f_test1_overload('Allen');--查看执行结果select * from v_company1;调用结果:2、根据员工姓名或员工年龄获取员工信息--根据员工姓名或员工年龄获取员工信息CREATE OR REPLACE FUNCTION f_test1_overload(c_name VARCHAR,c_age INT)RETURNS VOID PACKAGELANGUAGE plpgsqlAS $$DECLAREs_sql TEXT;BEGINs_sql := 'CREATE OR REPLACE VIEW v_company2 AS SELECT * FROM company1 where name=''' || c_name || ''' OR age >= ''' || c_age || '''' ;EXECUTE s_sql;END $$;--调用select f_test1_overload('Allen',25);--查看执行结果select * from v_company2;调用结果:示例二:创建package属性重载函数,根据不同的参数求图形面积1、根据长和宽求面积--根据长和宽求面积CREATE OR REPLACE FUNCTION f_test2_overload(length INT, width INT)RETURNS INT PACKAGELANGUAGE plpgsqlAS $$BEGINRETURN length * width;END $$;--调用SELECT f_test2_overload(5,10)调用结果:2、根据半径求面积S=πr平方--根据半径求面积S=πr平方CREATE OR REPLACE FUNCTION f_test2_overload(radius INT)RETURNS FLOAT PACKAGELANGUAGE plpgsqlAS $$BEGINRETURN 3.14 * radius * radius;END $$;--调用SELECT f_test2_overload(10)调用结果:特别说明:需要注意的是,在数据库中实现自定义重载函数并不是一件必须的事情,因为数据库系统通常已经提供了丰富的内置函数和操作符,能够满足大部分数据处理需求。如果需要实现特殊的数据处理逻辑,可以先考虑使用内置函数和操作符来实现,如果无法满足需求再考虑自定义重载函数。五、小结在GaussDB数据库中,函数重载是一个重要特性,允许我们在同一个数据库中定义多个同名函数,根据参数的不同来调用不同的函数。通过函数重载,我们可以提高代码的可读性和重用性,实现多个功能在一个函数名下的统一管理。无论是根据参数类型、数量还是顺序的差异,函数重载都为我们提供了更多的灵活性和选择性。在应用函数重载时,我们应该注意避免定义过多重载函数导致混淆和冗余。合理使用函数重载可以提高代码的可维护性和可拓展性,使数据库应用更加高效和可靠。——结束
  • [问题求助] GaussDB上的数据迁移工具,哪个最快最安全?官方有提供迁移工具吗
    GaussDB上的数据迁移工具,哪个最快最安全?官方有提供迁移工具吗
  • [问题求助] SQL语句中字段名大小写敏感问题
    GaussDB主备版,字段名称包含大写字母查询报错,需要加引号才能正常执行  执行正常:select "keyTab" from file_source  执行错误:select keyTab from file_source,提示字段不存在是否可以通过全局设置,在不加引号的情况下也能正常执行,如何进行设置?
  • [技术解读] GaussDB管理员设置
    初始用户       集群安装过程中自动生成的账户称为初始用户。初始用户也是系统管理员、监控管理员、运维管理员和安全策略管理员,拥有系统的最高权限,能够执行所有的操作。如果安装时不设置初始用户名称则该账户与进行安装的操作系统用户同名。如果在安装集群时不设置初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端设置初始用户的密码。如果初始用户密码为空,则除修改密码外无法执行其他SQL操作以及升级、扩容、节点替换等操作。       初始用户会绕过所有权限检查。建议仅将此初始用户作为DBA管理用途,而非业务应用。系统管理员       系统管理员是指具有SYSADMIN属性的账户,默认安装情况下具有与对象所有者相同的权限,但不包括dbe_perf模式的对象权限和使用Roach工具执行备份恢复的权限。       要创建新的系统管理员,请以初始用户或者系统管理员用户身份连接数据库,并使用带SYSADMIN选项的CREATE USER语句或ALTER USER语句进行设置。安全管理员       安全管理员是指具有CREATEROLE属性的账户,具有创建、修改、删除用户或角色的权限。       要创建新的安全管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库,三权分立打开时,请以安全管理员身份连接数据库,并使用带CREATEROLE选项的CREATE USER语句或 ALTER USER语句进行设置。审计管理员       审计管理员是指具有AUDITADMIN属性的账户,具有查看和删除审计日志的权限。       要创建新的审计管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库,三权分立打开时,请以安全管理员身份连接数据库,并使用带AUDITADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。监控管理员       监控管理员是指具有MONADMIN属性的账户,具有查看dbe_perf模式下视图和函数的权限,亦可以对dbe_perf模式的对象权限进行授予或收回。       要创建新的监控管理员,请以系统管理员身份连接数据库,并使用带MONADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。安全策略管理员       安全策略管理员是指具有POLADMIN属性的账户,具有创建资源标签,脱敏策略和统一审计策略的权限。       要创建新的安全策略管理员,请以系统管理员用户身份连接数据库,并使用带POLADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。逻辑集群管理员       逻辑管理员本质上仍然是普通用户,和普通用户相比,有如下额外权限:在所关联逻辑中创建、修改和删除资源池的权限。将所关联的逻辑的访问权限授予其他用户或角色,或回收其他用户或角色对关联逻辑的访问权限。
总条数:1667 到第
上滑加载中