接上篇 【FAQ合集贴】GaussDB “常见问题” 及 “解决方案”(1 —— 30)
华为云论坛_云计算论坛_开发者论坛_技术论坛-华为云
接上篇 【FAQ合集贴】GaussDB “常见问题” 及 “解决方案”(31 —— 40)
华为云论坛_云计算论坛_开发者论坛_技术论坛-华为云
OpenGauss 新建的存储过程客户端看不到内容,这个是要授予什么权限吗?
答:要获得函数的定义,可以使用pg_get_functiondef():
select pg_get_functiondef(oid)
from pg_proc
where proname = ‘foo’;
复制
有类似的函数来检索索引,视图,规则等的定义。有关详细信息,请参阅手册: http://www.postgresql.org/docs/current/static/functions-info.html
获取用户类型的定义有点棘手,需要查询 information_schema.attributes:
select attribute_name, data_type
from information_schema.attributes
where udt_schema = ‘public’
and udt_name = ‘footype’
order by ordinal_postion;
复制
从那里你需要重新组装create type声明
高斯数据库的Primary key支持多个字段吗 答:支持
GaussDB删除存储过程报错 错误为:ERROR: function prmecat.insert_copy_partprice asks parameters
答:这是因为你这存储过程定义了多个,属于重载的函数,删的时候要指定参数,指明要删除哪一个,语法为:
DROP FUNCTION [ IF EXISTS ] function_name
[ ( [ {[ argmode ] [ argname ] argtype} [, …] ] ) [ CASCADE | RESTRICT ] ];
复制
GaussDB报 Error: insert partition key does not map to any partition 错误为:ERROR: inserted partition key does not map to any partition,详细 inserted partition key cannot be NULL for interval-partitioned table
答:排查下分区键插入的值是否有空值
Oracle数据库转高斯数据库问题 问题描述:Oracle数据库转高斯数据库,原Oracle中的all_users无法识别,查资料之后替换为db_users(oracle中all_users是对应的高斯里面的db_users吗,这样替换对不对),替换成db_users后高斯能够识别 了,但是, 报permission denied for relation db_users异常
答:Gaussdb是用pg_roles
自建sys_guid()函数时报“ permission denied for schema public”,怎么解决
答:这是因为安全原因,不允许普通客户在public模式下操作。可以创建你自己的schema下创建 参考:https://zhuanlan.zhihu.com/p/365139070
memory is temporarily unavailable 该怎么解决 错误为: ``` Caused by: com.huawei.opengauss.jdbc.util.PSQLException: [X.X.X.X:47714/X.X.X.X:8000] ERROR: memory is temporarily unavailable
failed on request of size 8388608 bytes under queryid 3659178092607942 in nodeHash.cpp:419.
答:用下面几个SQL分析下:
1.当前占用内存TOP 20的会话
复制
select
m.used_mem, pid, sessionid, datname, usename, application_name, client_addr, xact_start, query_start, (now() - xact_start)::text as xact_runtime, query from gs_session_memory m join pg_stat_activity a on (split_part(m.sessid, ‘.’, 2) = a.sessionid) where pid <> pg_backend_pid() order by m.used_mem desc limit 20;
2.指定会话内存占用详细
复制
select * from gs_session_memory_detail where split_part(sessid, ‘.’, 2) = 会话ID order by totalsize desc;
注意:
(1)used_mem的单位为MB
(2)没有sysadmin/monadmin权限的普通用户只能看到自己的会话
复制
python连OpenGauss有方案吗?psycopg2可以用吗 答:官网文档里有做详细的介绍:https://support.huaweicloud.com/qs-opengauss/opengauss_Psycopg_connect.html
Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配PostgreSQL数据类型;通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Unicode和Python 3。
GaussDB数据库提供了对Psycopg2特性的支持,并且支持psycopg2通过SSL模式链接。
LOWER 函数对应高斯数据库的哪个函数 答:一样是lower(string) 描述:把字符串转化为小写。 返回值类型:varchar 示例:
openGauss=#SELECT lower(‘TOM’) lower




