云服务器内容精选

  • 常见问题 Q:writeMode参数设置什么值比较合适? A:根据业务场景分update(只更新存在的数据)和upsert(对于同一主键数据如果存在就更新,不存在就新增一条数据)两个类型,推荐直接使用auto方式即可,该方式下会根据数据量的大小自动选择,如果数据量较大会增大攒批参数autoFlushBatchSize,即可提升入库性能。 Q:autoFlushBatchSize和autoFlushMaxInterval怎么设置比较合适? A:autoFlushBatchSize参数用于设置最大攒批条数,autoFlushMaxInterval参数用于设置最大攒批间隔,两个参数分别从时间和空间维度管控攒批。 通过autoFlushMaxInterval可保证数据量较小时的时效性,如对时效性无强制要求通常不建议设置的太小,建议不低于3s走默认值即可。 通过autoFlushBatchSize可控制一批数据的最大条数,一般来说攒批量越大,对于整体入库性能会更好,对性能来说通常该参数的设置推荐越大越好,参数的设置根据业务数据的大小以及flink运行内存来设置,保证不内存溢出。 对于大多业务来说无需设置autoFlushMaxInterval,将autoFlushBatchSize设置为50000即可。 Q: 遇到数据库死锁了怎么办? A:通常出现死锁大致分为行锁死锁和分布式死锁。 行锁:该场景通常为同一主键数据的并发更新造成行锁,该情况可以通过对数据做key by解决,key by必须根据数据库主键做,保证同一个主键数据会在同一个并发中,破坏掉并发更新的条件,无法造成死锁。Flink SQL做key by需要Flink本身支持,对于 DLI / MRS 均能实现,如MRS flink通过增加参数“key-by-before-sink=true”可实现key by。具体怎么使用以实现方为准,对于无法使用的建议使用API方式入库。 分布式死锁:该场景通常为列存表的并发更新造成分布式死锁,暂无法解决,建议使用行存或者hstore。
  • 示例 该示例是从kafka数据源中读取数据,写入DWS结果表中,并指定攒批时间不超过10秒,每批数据最大30000条,其具体步骤如下: 在 GaussDB (DWS)数据库中创建表public.dws_order: 1 2 3 4 5 6 7 8 9 10 11 create table public.dws_order( order_id VARCHAR, order_channel VARCHAR, order_time VARCHAR, pay_amount FLOAT8, real_pay FLOAT8, pay_time VARCHAR, user_id VARCHAR, user_name VARCHAR, area_id VARCHAR ); 消费Kafka中order_test topic中的数据作为数据源,public.dws_order作为结果表,Kafka数据为JSON格式,并且字段名称和数据库字段名称一一对应: 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 CREATE TABLE kafkaSource ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'kafka', 'topic' = 'order_test', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'GroupId', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); CREATE TABLE dwsSink ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'dws', 'url' = 'jdbc:gaussdb://DWSAddress:DWSPort/DWSdbName', 'tableName' = 'dws_order', 'username' = 'DWSUserName', 'password' = 'DWSPassword', 'autoFlushMaxInterval' = '10s', 'autoFlushBatchSize' = '30000' ); insert into dwsSink select * from kafkaSource; 给Kafka写入测试数据: 1 {"order_id":"202103241000000001", "order_channel":"webShop", "order_time":"2021-03-24 10:00:00", "pay_amount":"100.00", "real_pay":"100.00", "pay_time":"2021-03-24 10:02:03", "user_id":"0001", "user_name":"Alice", "area_id":"330106"} 等10秒后在GaussDB(DWS)表中查询结果: 1 select * from dws_order 结果如下:
  • Flink SQL配置参数 Flink SQL中设置的PRIMARY KEY将自动映射到dws-client中的uniqueKeys。参数跟随client版本发布,参数功能与client一致,以下参数说明表示为最新参数。 表1 数据库配置 参数 说明 默认值 connector flink框架区分connector参数,固定为dws。 - url 数据库连接地址。 - username 配置连接用户。 - password 配置密码。 - tableName 对应dws表。 - 表2 连接配置 参数 说明 默认值 connectionSize 初始dws-client时的并发数量。 1 connectionMaxUseTimeSeconds 连接创建多少秒后强制释放(单位:秒)。 3600(一小时) connectionMaxIdleMs 连接最大空闲时间,超过后将释放(单位:毫秒)。 60000(一分钟) 表3 写入参数 参数 说明 默认值 conflictStrategy 有主键表数据写入时主键冲突策略: ignore:保持原数据,忽略更新数据。 update:用新数据中非主键列更新原数据中对应列。 replace:用新数据替换原数据。 说明: update和replace在全字段upsert时等效,在部分字段upsert时,replace相当于将数据中不包含的列设置为null。 update writeMode 入库方式: auto:系统自动选择。 copy_merge:当存在主键时使用copy方式入临时表,从临时表merge至目标表;无主键时直接copy至目标表。 copy_upsert:当存在主键时使用copy方式入临时表,从临时表upsert至目标表;无主键时直接copy至目标表。 upsert: 有主键用upsert sql入库;无主键用insert into入库。 UPDATE:使用update where语法更新数据,若原表无主键可选择指定uniqueKeys,指定字段不要求必须时唯一索引,但非唯一索引可能会影响性能。 COPY_UPDATE:数据先通过copy方式入库到临时表,通过临时表加速使用update from where方式更新目标数据。 UPDATE_AUTO:批量小于copyWriteBatchSize使用UPDATE,否则使用COPY_UPDATE。 auto maxFlushRetryTimes 在入库时最大尝试次数,次数内执行成功则不抛出异常,每次重试间隔为 1秒 * 次数。 3 autoFlushBatchSize 自动刷库的批大小(攒批大小)。 5000 autoFlushMaxInterval 自动刷库的最大间隔时间(攒批时长)。 5s copyWriteBatchSize 在“writeMode == auto”下,使用copy的批大小。 5000 ignoreDelete 忽略flink任务中的delete。 false (1.0.10前默认true) ignoreNullWhenUpdate 是否忽略flink中字段值为null的更新,只有在“conflictStrategy == update”时有效。 false metadataCacheSeconds 系统中对元数据的最大缓存时间,例如表定义信息(单位秒)。 180 copyMode copy入库格式: CS V:将数据拼接为CSV格式入库,该方式稳定,但性能略低。 DELIMITER:用分隔符将数据拼接,然后入库,该方式需要数据中不包含分隔符。 CSV createTempTableMode 创建临时表方式: AS LIKE AS numberAsEpochMsForDatetime 如果数据库为时间类型数据源为数字类型,是否将数据当成时间戳转换为对应时间类型。 false stringToDatetimeFormat 如果数据库为时间类型数据源为字符串类型,按该格式转换为时间类型,该参数配置即开启。 null sink.parallelism flink系统参数用于设置sink并发数量。 跟随上游算子 printDataPk 是否在connector接收到数据时打印数据主键,用于排查问题。 false ignoreUpdateBefore 忽略flink任务中的update_before,在大表局部更新时该参数一定打开,否则有update时会导致数据的其它列被设置为null,因为会先删除再写入数据。 true
  • 格式语法 SQL语法格式可能在不同Flink环境下有细微差异,具体以事件环境格式为准,with后面的参数名称及参数值以此文档为准。 1 2 3 4 5 6 7 8 9 10 11 12 create table dwsSink ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) ) with ( 'connector' = 'dws', 'url' = '', 'tableName' = '', 'username' = '', 'password' = '' );
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -C, --set-file=FILENAME 使用文件作为命令源而不是交互式输入,gsql处理完文件后不退出,继续处理其他内容。 绝对路径或相对路径,且满足操作系统路径命名规则。 -d, --dbname=DBNAME 指定想要连接的数据库名称。 字符串。 -D, --dynamic-param 用于控制执行SQL语句设置变量和${}变量引用方式,具体示例参见变量。 - -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用以把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接集群。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启客户端操作历史记录功能。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -g 显示所有SQL语句和指定文件的分隔符。 说明: -g参数必须和-f参数一起设置。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名或者Unix域套接字的路径。 如果省略主机名,gsql将通过Unix域套接字与本地主机的服务器相联,或者在没有Unix域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。 默认为8000。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用以身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串。默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接远端数据库时,可通过该选项指定密码。 说明: 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password max length的最大值。 符合密码复杂度要求。 父主题: gsql
  • 注意事项 一个gsql元命令的格式是反斜杠后面紧跟一个动词,然后是任意参数。参数命令动词和其他参数以任意个空白字符间隔。 要在参数里面包含空白,必须用单引号把它引起来。要在这样的参数里包含单引号,可以在前面加一个反斜杠。任何包含在单引号里的内容都会被进一步进行类似C语言的替换:\n(新行)、\t(制表符)、\b(退格)、\r(回车)、\f(换页)、\digits(八进制表示的字符)、\xdigits(十六进制表示的字符)。 用""包围的内容被当做一个命令行传入shell。该命令的输出(删除了结尾的新行)被当做参数值。 如果不带引号的参数以冒号(:)开头,它会被当做一个gsql变量,并且该变量的值最终会成为真正的参数值。 有些命令以一个SQL标识的名称(比如一个表)为参数。这些参数遵循SQL语法关于双引号的规则:不带双引号的标识强制转换成小写,而双引号保护字母不进行大小写转换,并且允许在标识符中使用空白。在双引号中,成对的双引号在结果名字中分析成一个双引号。比如,FOO"BAR"BAZ解析成fooBARbaz;而"A weird"" name"解析成A weird" name。 对参数的分析在遇到另一个不带引号的反斜杠时停止。这里会认为是一个新的元命令的开始。特殊的双反斜杠序列(\\)标识参数的结尾并将继续分析后面的SQL语句(如果存在)。这样SQL和gsql命令可以自由的在一行里面混合。但是在任何情况下,一条元命令的参数不能延续超过行尾。
  • PATTERN 很多\d命令都可以用一个PATTERN参数来指定要被显示的对象名称。在最简单的情况下,PATTERN正好就是该对象的准确名称。在PATTERN中的字符通常会被变成小写形式(就像在SQL名称中那样),例如\dt FOO将会显示名为foo的表。就像在SQL名称中那样,把PATTERN放在双引号中可以阻止它被转换成小写形式。如果需要在一个PATTERN中包括一个真正的双引号字符,则需要把它写成两个相邻的双引号,这同样是符合SQL引用标识符的规则。例如,\dt "FOO""BAR"将显示名为FOO"BAR(不是foo"bar)的表。和普通的SQL名称规则不同,不能只在PATTERN的一部分周围放上双引号,例如\dt FOO"FOO"BAR将会显示名为fooFOObar的表。 不使用PATTERN参数时,\d命令会显示当前schema搜索路径中可见的全部对象——这等价于用*作为PATTERN。所谓对象可见是指可以直接用名称引用该对象,而不需要用schema来进行限定。要查看数据库中所有的对象而不管它们的可见性,可以把*.*用作PATTERN。 如果放在一个PATTERN中,*将匹配任意字符序列(包括空序列),而?会匹配任意的单个字符(这种记号方法就像 Unix shell 的文件名PATTERN一样)。例如,\dt int*会显示名称以int开始的表。但是如果被放在双引号内,*和?就会失去这些特殊含义而变成普通的字符。 包含一个点号(.)的PATTERN被解释为一个schema名称模式后面跟上一个对象名称模式。例如,\dt foo*.*bar*会显示名称以foo开始的schema中所有名称包括bar的表。如果没有出现点号,那么模式将只匹配当前schema搜索路径中可见的对象。同样,双引号内的点号会失去其特殊含义并且变成普通的字符。 高级用户可以使用字符类等正则表达式记法,如[0-9]可以匹配任意数字。所有的正则表达式特殊字符都按照《开发指南》中的POSIX正则表达式所说的工作。以下字符除外: .会按照上面所说的作为一种分隔符。 *会被翻译成正则表达式记号.*。 ?会被翻译成.。 $则按字面意思匹配。 根据需要,可以通过书写?、(R+|)、(R|)和R?来分别模拟PATTERN字符.、R*和R?。$不需要作为一个正则表达式字符,因为PATTERN必须匹配整个名称,而不是像正则表达式的常规用法那样解释(换句话说,$会被自动地追加到PATTERN上)。如果不希望该PATTERN的匹配位置被固定,可以在开头或者结尾写上*。注意在双引号内,所有的正则表达式特殊字符会失去其特殊含义并且按照其字面意思进行匹配。另外,在操作符名称PATTERN中(即\do的PATTERN参数),正则表达式特殊字符也按照字面意思进行匹配。
  • GAUSS-01001 -- GAUSS-01010 GAUSS-01001: "invalid type category '%s': must be simple ASCII" SQLSTATE: 22023 错误原因:非法的类型类别:类别名必须是简单ASCII字符(ASCII值33--126)。 解决办法:确保使用简单ASCII字符(ACII值22--126)作为类型的类别名。 GAUSS-01002: "array element type cannot be %s" SQLSTATE: 42804 错误原因:数组的元素类型不能是伪类型。 解决办法:检查类型定义,请勿使用伪类型作为数组元素类型。 GAUSS-01003: "alignment '%s' not recognized" SQLSTATE: 22023 错误原因:对齐参数不合法。 解决办法:检查数据类型定义中的对齐参数,确保其是合法的参数。 GAUSS-01004: "storage '%s' not recognized" SQLSTATE: 22023 错误原因:存储参数不合法。 解决办法:检查数据类型定义中的存储参数,确保其是合法的。 GAUSS-01005: "type input function must be specified" SQLSTATE: 42P17 错误原因:没有指定数据类型的input函数。 解决办法:检查数据类型定义语句,确保指定了input函数。 GAUSS-01006: "type output function must be specified" SQLSTATE: 42P17 错误原因:没有指定数据类型的output函数。 解决办法:检查数据类型定义语句,确保指定了output函数。 GAUSS-01007: "type modifier output function is useless without a type modifier input function" SQLSTATE: 42P17 错误原因:只指定类型的TYPMOD_OUT函数而不指定TYPMOD_IN函数是无效的。 解决办法:检查类型定义语句,确保在定义TYPMOD_OUT时同时定义了TYPMOD_IN函数。 GAUSS-01008: "type input function %s must return type %s" SQLSTATE: 42P17 错误原因:类型的input函数没有返回指定的类型。 解决办法:检查类型定义语句,确保input函数返回指定的类型。 GAUSS-01009: "type output function %s must return type 'cstring'" SQLSTATE: 42P17 错误原因:类型的output函数没有返回指定的类型。 解决办法:检查类型定义语句,确保output函数返回指定的类型。 GAUSS-01010: "type receive function %s must return type %s" SQLSTATE: 42P17 错误原因:类型的receive函数没有返回指定的类型。 解决办法:检查类型定义语句,确保receive函数返回指定的类型。 父主题: GAUSS-01001 -- GAUSS-01100
  • GAUSS-01911 -- GAUSS-01920 GAUSS-01911: "constraint '%s' for domain %s already exists" SQLSTATE: 42710 错误原因:在当前表对象中,重命名时想要使用的constraint名字已经存在。 解决办法:请确认当前域中的已经存在的constraint名称。 GAUSS-01912: "table '%s' has multiple constraints named '%s'" SQLSTATE: 42710 错误原因:当前表中至少有两个相同名字的constraint。 解决办法:请确保对于同一张表,其constraint名称不相重合。 GAUSS-01913: "constraint '%s' for table '%s' does not exist" SQLSTATE: 42704 错误原因:当前表中不存在该constraint。 解决办法:请确认当前表中存在该constraint,或核查该表上的constraint。 GAUSS-01914: "domain '%s' has multiple constraints named '%s'" SQLSTATE: 42710 错误原因:当前域中至少有两个相同名字的constraint。 解决办法:请确保在同一域中,其constraint名称不相重合。 GAUSS-01915: "constraint '%s' for domain '%s' does not exist" SQLSTATE: 42704 错误原因:当前域中不存在该constraint。 解决办法:请确认该域所持有的constraint。 GAUSS-01916: "null conkey for constraint %u" SQLSTATE: XX005 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01917: "conkey is not a 1-D smallint array" SQLSTATE: 42804 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01918: "no aggregate name supplied" SQLSTATE: XX000 错误原因:Aggregate未提供name。 解决办法:请提供Aggregate name。 GAUSS-01919: "aggregate must have a transition function" SQLSTATE: XX000 错误原因:Aggregate必须有一个transition function。 解决办法:请提供transition function。 GAUSS-01920: "cannot determine transition data type" SQLSTATE: 42P13 错误原因:在创建聚集函数时对于复合类型无法确定其变换类型。 解决办法:对于复合类型应指定其转换类型。 父主题: GAUSS-01901 -- GAUSS-02000
  • GAUSS-03001 -- GAUSS-03010 GAUSS-03001: "smalldatetime out of range" SQLSTATE: 22008 错误原因:数值越界。 解决办法:检查输入数据。 GAUSS-03002: "smalldatetime cannot be NaN" SQLSTATE: 22008 错误原因:smalldatetime类型数据不能为无限值。 解决办法:检查输入数据。 GAUSS-03003: "timestamp(%d) precision must be between %d and %d" SQLSTATE: 22023 错误原因:timestamp的精度只能介于0到6之间。 解决办法:检查输入的精度是否越界。 GAUSS-03004: "unexpected dtype %d while parsing timestamptz '%s'" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03005: "interval out of range" SQLSTATE: 22008 错误原因:interval类型数据越界。 解决办法:检查输入数据。 GAUSS-03006: "unexpected dtype %d while parsing interval '%s'" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03007: "could not convert interval to tm" SQLSTATE: XX000 错误原因: 系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03008: "invalid INTERVAL type modifier" SQLSTATE: 22023 错误原因:非法的interval类型精度值。 解决办法:检查类型精度值。 GAUSS-03009: "INTERVAL(%d) precision must not be negative" SQLSTATE: 22023 错误原因:interval类型的精度值不能为负。 解决办法:检查类型精度值。 GAUSS-03010: "invalid INTERVAL typmod: 0x%x" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 父主题: GAUSS-03001 -- GAUSS-03100
  • GAUSS-03351 -- GAUSS-03360 GAUSS-03351: "cannot use 'EEEE' twice" SQLSTATE: 42601 错误原因:数值格式错误,“EEEE”不应出现两次。 解决办法:修正数值格式,重新执行。 GAUSS-03352: "'EEEE' is incompatible with other formats" SQLSTATE: 42601 错误原因:数值格式错误,“EEEE”与其它格式不兼容。 解决办法:修正数值格式,重新执行。 GAUSS-03353: "invalid data for match in format string" SQLSTATE: 22007 错误原因:数据转换为timestamp格式时,format参数值不正确,不符合timestamp格式。 解决办法:请修正转换格式format的字符串,使其能正确表示timestamp格式,重新执行。 GAUSS-03354: "'%s' is not a number" SQLSTATE: 22P02 错误原因:数字串中不应有非数字字符。 解决办法:请修正数字字符串,重新执行。 GAUSS-03355: "could not determine which collation to use for lower() function" SQLSTATE: 42P22 错误原因:在调用lower函数时无法确定使用的collation。 解决办法:应该使用COLLATE子句显式设定collation。 GAUSS-03356: "could not determine which collation to use for upper() function" SQLSTATE: 42P22 错误原因:在调用upper函数时无法确定使用的collation。 解决办法:应该使用COLLATE子句显式设定collation。 GAUSS-03357: "could not determine which collation to use for initcap() function" SQLSTATE: 42P22 错误原因:在调用initcap函数时无法确定使用的collation。 解决办法:应该使用COLLATE子句显式设定collation。 GAUSS-03358: " RR/RRRR should be between 0 - 9999" SQLSTATE: 22008 错误原因:日期时间错误,年份应该在0-9999范围内。 解决办法:请修正年份数值在合理范围内。 GAUSS-03359: "invalid combination of date conventions" SQLSTATE: 22007 错误原因:日期格式错误,不应混合使用公历和ISO星期日期格式。 解决办法:修正日期格式,使用公历日期或者ISO星期日期。 GAUSS-03360: "conflicting values for '%s' field in formatting string" SQLSTATE: 22007 错误原因:日期时间格式错误,同一字段被重复赋予不同的取值。 解决办法:不应设置冲突的值,取消第二次赋值。 父主题: GAUSS-03301 -- GAUSS-03400
  • GAUSS-01781 -- GAUSS-01790 GAUSS-01781: "cannot move objects into system schema" SQLSTATE: 0A000 错误原因:不可将对象移入系统表空间。 解决办法:请确认当前表空间类型,如果为系统表空间,将不支持移入相关数据对象。 GAUSS-01782: "improper relation name (too many dotted names): %s" SQLSTATE: 42601 错误原因:导入的表名称不合法。 解决办法:数据库系统中的表名称最为复杂的情况是catalogname.schemaname.relname,如果超过此情况,将不再支持。 GAUSS-01783: "unexpected node type in name list: %d" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01784: "bogus PopOverrideSearchPath call" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01785: "collation '%s' for encoding '%s' does not exist" SQLSTATE: 42704 错误原因:对应于GetDatabaseEncodingName()所得到的编码方法并不支持NameListToString(name)所对应的字符集。 解决办法:查询手册确认当前系统所支持的字符集以及相应的编码方式。 示例: 1 2 3 4 postgres=# select 'a' collate "dummy"; ERROR: collation "dummy" for encoding "UTF8" does not exist LINE 1: select 'a' collate "dummy"; ^ GAUSS-01786: "conversion '%s' does not exist" SQLSTATE: 42704 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01787: "invalid list syntax" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-01788: "permission denied to create temporary tables in database '%s'" SQLSTATE: 42501 错误原因:该用户没有在当前数据库创建临时表的权限。 解决办法:执行GRANT语句赋予该用户访问当前数据库的权限,具体语句如下: 1 GRANT TEMPORARY on DATABASE database_name TO role_name; 更多GRANT语法内容,请参见GRANT。 GAUSS-01789: "cannot create temporary tables during recovery" SQLSTATE: 25006 错误原因:数据库当前属于从某个状态恢复的过程中,此时不支持创建临时表。 解决办法:若创建临时表不成功,可优先查看当前数据库状态。 GAUSS-01790: "current user does not have privilege to role %s" SQLSTATE: 42501 错误原因:当前用户没有管理role的权限。 解决办法:可向管理员确认用户当前的权限。 父主题: GAUSS-01701 -- GAUSS-01800
  • GAUSS-03011 -- GAUSS-03020 GAUSS-03011: "unrecognized interval typmod: %d" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03012: "interval(%d) precision must be between %d and %d" SQLSTATE: 22023 错误原因:interval类型的精度值必须介于0到6之间。 解决办法:检查类型精度值。 GAUSS-03013: "invalid argument for EncodeSpecialTimestamp" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03014: "cannot subtract infinite timestamps" SQLSTATE: 22008 错误原因:不能减去无限值的timestamp值。 解决办法:检查输入数据。 GAUSS-03015: "expected 2-element interval array" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03016: "timestamp units '%s' not supported" SQLSTATE: 0A000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03017: "timestamp units '%s' not recognized" SQLSTATE: 22023 错误原因:timestamp没有时间单位。 解决办法:检查输入参数。 GAUSS-03018: "timestamp with time zone units '%s' not supported" SQLSTATE: 0A000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03019: "timestamp with time zone units '%s' not recognized" SQLSTATE: 22023 错误原因:带timezone的timestamp没有时间单位。 解决办法:检查输入参数。 GAUSS-03020: "interval units '%s' not supported" SQLSTATE: 0A000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 父主题: GAUSS-03001 -- GAUSS-03100
  • GAUSS-03361 -- GAUSS-03370 GAUSS-03361: "source string too short for '%s' formatting field" SQLSTATE: 22007 错误原因:日期时间格式错误,源字符串长度小于需要读取的长度。 解决办法:如果源字符串不是定长的,尝试使用“FM”修饰符。 GAUSS-03362: "invalid value '%s' for '%s'" SQLSTATE: 22007 错误原因:日期时间格式错误,需要长度的字符中有部分字符无法解析。 解决办法:请修正要转换为日期时间的字符格式,使其符合日期时间的字符格式要求,如果源字符串不是定长的,尝试使用“FM”修饰符。 GAUSS-03363: "value for '%s' in source string is out of range" SQLSTATE: 22008 错误原因:日期时间格式错误,字符串的值超出正常范围。 解决办法:请根据提示调整字符取值,使其满足范围要求。 GAUSS-03364: "character does not match format string" SQLSTATE: 22007 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03365: "input length of format 'US'/'us'/'FF'/'ff' must between 0 and 6" SQLSTATE: 22008 错误原因:日期时间的值超出范围,“US/us/FF/ff”格式的长度必须在0-6之间。 解决办法:修正格式长度,其值应在0-6之间。 GAUSS-03366: "'TZ'/'tz' format patterns are not supported in to_date" SQLSTATE: 0A000 错误原因:不支持“TZ/tz”格式的日期。 解决办法:修正时间格式。 GAUSS-03367: "invalid input string for 'Y,YYY'" SQLSTATE: 22007 错误原因:输入的字符串不满足日期时间格式要求。 解决办法:输入的字符串必须是“Y,YYY”格式。 GAUSS-03368: "invalid data for match in date string" SQLSTATE: 22007 错误原因:日期时间格式错误,在日期字符串中用来匹配的数据不合法。 解决办法:使用合法的字符文本查询匹配。 GAUSS-03369: "invalid data for '%s = %d' ,value must be %s" SQLSTATE: 22008 错误原因:日期时间格式错误,输入数据与指定值不一致。 解决办法:按指定值输入数据。 GAUSS-03370: " seconds of minute conflicts with seconds in day" SQLSTATE: 22007 错误原因:日期时间格式错误,分钟和天中的秒数不一致。 解决办法:修正日期时间格式错误。 父主题: GAUSS-03301 -- GAUSS-03400
  • GAUSS-03541 -- GAUSS-03550 GAUSS-03541: "recovery_target_xid is not a valid number: '%s'" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03542: "recovery_target_name is too long (maximum %d characters)" SQLSTATE: 22023 错误原因:配置恢复目标名称太长。 解决办法:请缩短配置恢复目标名称后,重新恢复数据库。 GAUSS-03543: "unrecognized recovery parameter '%s'" SQLSTATE: XX000 错误原因:配置恢复参数不支持。 解决办法:请正确配置恢复参数后,重新恢复数据库。 GAUSS-03544: "recovery command file '%s' must specify restore_command when standby mode is not enabled" SQLSTATE: XX000 错误原因:配置恢复命令为空。 解决办法:请正确配置恢复命令后,重新恢复数据库。 GAUSS-03545: "recovery target timeline %u does not exist" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03546: "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)" SQLSTATE: 22023 错误原因:备机的参数配置比主机小。 解决办法:请修改配置,重启数据库。 GAUSS-03547: "hot standby is not possible because wal_level was not set to 'hot_standby' on the master server" SQLSTATE: XX000 错误原因:主机参数wal_level没有设置为hot_standby。 解决办法:请设置主机参数wal_level为hot_standby后,重建HA。 GAUSS-03548: "control file contains invalid data" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 GAUSS-03549: "requested timeline %u is not a child of database system timeline %u" SQLSTATE: XX000 错误原因:备份的WAL日志文件与数据库不匹配。 解决办法:请确保WAL日志文件与数据库一致后,重启恢复数据库。 GAUSS-03550: "could not find redo location referenced by checkpoint record" SQLSTATE: XX000 错误原因:系统内部错误。 解决办法:请联系技术支持工程师提供技术支持。 父主题: GAUSS-03501 -- GAUSS-03600