GBASE南大通用(基于PostgreSQL)数据库使用记录

总结:和高斯差不多,都是基于PostgreSQL的,然后适配过程中使用高斯工程师给的最新驱动gaussdbjdbc.jar和jdbc:gaussdb配置 也连接成功了,适配过程参考写的高斯数据适配就行,记录下中间出现的几个差异问题

GBASE版本如下:

PostgreSQL 9.2.4 (single_node GBase8sV8.8.5 S5.0.0B29 build 9f0c40cd) compiled at 2024-07-26 09:15:11 commit 0 last mr 620  on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit

1、 程序执行sql提示不支持dual虚表

程序的客户端配置的都是huaweicloud-dws-jdbc-8.1.0.ja驱动,程序里执行sql提示 不存在 dual表,但是客户端执行sql是可以的

在这里插入图片描述

解决方法:程序连接配置要修改 currentSchema=模式名,改为currentSchema=模式名,public,
即额外加上 public 模式

2、(和高斯的差异)使用高斯新驱动,要去掉targetServerType=master配置

使用高斯新驱动配置,cytjdb.url配置了targetServerType=master启动报错,提示没有argetServerType=master属性,无法启动,需要删除这个配置,但是如果使用huaweicloud-dws-jdbc8.1.0.jar旧驱动搭配jdbc:postgresql连接,加了targetServerType=master是可以的。

去掉targetServerType=master的jdbc:gaussdb连接模板

cytjdb.url=jdbc:gaussdb://ip1:port1/数据库名称?currentSchema=模式,public&uppercaseAttributeName=true&targetServerType=master&loggerLevel=OFF&connectTimeout=30&socketTimeout=30&loginTimeout=30&prepareThreshold=1&batchMode=on&fetchsize=10&defaultRowFetchSize=10
cytjdb.username=数据库用户名
cytjdb.password=密码
cytjdb.dialect=org.hibernate.dialect.PostgreSQLDialect
<think>好的,用户想了解南大通用数据库中日期函数的使用方法。首先,我需要回忆一下之前提供的引用内容,看看有没有相关的信息。 在引用[3]中提到了创建UDR外部函数,其中有一个from_unixtime函数的例子,可以将Unix时间戳转换为timestamp类型。这说明南大通用数据库支持自定义日期函数,或者可能有内置的日期函数。用户可能需要知道如何转换时间戳或者处理日期数据。 引用[4]提到向量数据库与传统数据库的不同,但这里可能不直接相关。不过引用[2]中提到了数据库的命令行操作,比如进入和退出数据库命令行,这可能涉及到如何执行SQL语句,包括日期函数的使用。 用户可能需要知道常用的日期函数,比如获取当前日期、日期加减、格式化日期等。虽然具体的内置函数没有在引用中详细列出,但可以推测南大通用GBase 8s或GBase 8c可能兼容PostgreSQL或MySQL的语法,因为很多国产数据库会兼容主流数据库的语法。 例如,在PostgreSQL中,有NOW()、CURRENT_DATE、DATE_TRUNC等函数。如果GBase兼容这些,用户可能需要类似的使用方法。此外,引用[3]的例子中使用了TO_TIMESTAMP函数,这可能是一个内置函数,用于将Unix时间戳转换为日期时间类型。 另外,用户可能需要知道如何自定义日期函数,如引用[3]中的示例,他们创建了一个UDR函数from_unixtime。这可能说明当内置函数不满足需求时,用户可以自己编写函数扩展功能。 需要注意的是,用户的问题是关于日期函数的使用方法,所以需要分步骤说明,可能包括内置函数的使用和自定义函数的创建。同时,要确保语法正确,比如使用正确的函数名和参数格式。 可能还需要提醒用户参考官方文档,因为不同版本的数据库可能有差异。此外,引用[2]中的命令行操作可以帮助用户如何执行这些SQL语句,比如进入数据库命令行界面后运行相关查询。 总结回答的结构应该是先介绍内置日期函数,给出示例,然后讲解如何自定义函数,最后提到相关工具的使用,如命令行操作。同时,引用相关的引用内容作为支持,比如引用[3]中的例子和引用[2]中的命令行步骤。</think>关于南大通用数据库GBase)的日期函数使用,根据公开技术资料和引用内容,可分为以下三类场景说明: ### 一、内置日期函数 南大通用数据库支持标准SQL日期函数,例如: 1. **当前日期获取** ```sql SELECT CURRENT_DATE; --返回格式:YYYY-MM-DD SELECT NOW(); --返回带时区的完整时间戳 ``` 2. **日期格式化** ```sql SELECT TO_CHAR(NOW(), 'YYYY年MM月DD日 HH24:MI:SS'); --中文格式输出 ``` 3. **日期计算** ```sql SELECT CURRENT_DATE + INTERVAL '3 DAY'; --3天后的日期 ``` ### 二、自定义日期函数开发 引用[3]展示了创建Unix时间戳转日期函数的案例: ```sql CREATE OR REPLACE FUNCTION from_unixtime(t int8) RETURNS timestamp AS $BODY$ BEGIN RETURN TO_TIMESTAMP(t); --调用内置转换函数 END; $BODY$ LANGUAGE plpgsql VOLATILE; ``` > 该UDR(用户定义例程)通过`TO_TIMESTAMP`实现时间戳转换[^3] ### 三、日期函数扩展支持 1. **动态库部署**(如需要C扩展): ```bash cp custom_date.so /opt/gnode/server/lib/gbase/plugin/ # 引用[5]中的动态库部署方法 ``` 2. **命令行操作**: 通过`gsql`进入数据库命令行后执行函数创建语句[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值