KingBase

1、获取日期时间

select TO_CHAR(NOW() ,'yyyy-MM-dd HH24:MI') A01;

添加年月日时分秒

CREATE TABLE PSKH_RESULTFLAG (
    RECORDID VARCHAR(36 byte) NOT NULL,
    CREATETIME TIMESTAMP NULL,
    UPDATETIME VARCHAR2(36) NULL,
    CONSTRAINT PK_PSKH_RESULTFLAG PRIMARY KEY (RECORDID)
);
INSERT INTO PSKH_RESULTFLAG(RECORDID,CREATETIME,UPDATETIME)VALUES('29392494-A2BB-4A2D-858D-13DF8746DEB2',NOW(),SYSDATE);

2、人大金仓数据库中判断为空,使用NVL函数,其他数据库使用IFNULL(MYSQL)

(1)MYSQL :  SELECT IFNULL(MAX(jxkh0510), 0) AS jxkh0510 FROM jxkh54 

(2)KingBase : SELECT NVL(MAX(jxkh0510), 0) AS jxkh0510 FROM jxkh54 

3、WITH NO DATA 表示只拷贝表结构而不拷贝数据

    CREATE TABLE TAB_NO_DATA AS SELECT * FROM TAB WITH NO DATA;
   默认表示既拷贝表结构又拷贝数据
  CREATE TABLE TAB_WITH_DATA AS SELECT * FROM TAB;

4、人大金仓数据(Kingbase)迁移工具使用

(1)本示例演示将SQLSERVER数据库迁移至Kingbase,详细如下

        打开数据迁移工具

       

(2)配置原SQLSERVER数据库连接信息,如下图所示

(3)配置原Kingbase数据库连接信息,如下图所示

 

(4)新增数据库迁移任务,如下图所示

(5)点击源数据库设置,如

(6)点击目标数据库,选择需要迁移的表,如下

(7)执行迁移结果文件,如下

5、自动生成36位字符

(1)SELECT SYS_GUID_NAME() AS ID FROM PSKH66; 

(2)SELECT GET_UUID() FROM PSKH07

6、获取列表第一行数据:select * from (select * from B01 order BY B00) where rownum=1;

7、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

5、Kingbase锁表后解锁操作

(1).根据被锁表的表名,查询出oid(表名区分大小写)

         select oid from sys_class where relname = '表名';

(2)根据查询出的oid,查询出pid

     select pid from sys_locks where relation = 'oid';

(3)根据pid,强制结束该进程

   select sys_terminate_backend(pid);

(4)补充:要是不知道哪张表被锁,可以通过下面sql分析

   SELECT *FROM sys_stat_activity
   WHERE 
   pid != (SELECT sys_backend_pid())
   AND datname = '数据库名' AND usename = '模式名';

6、数据备份与还原

7、新增列、修改列、删除列、修改字段名称:

新增:ALTER TABLE A01 ADD COLUMN A0101 VARCHAR(100);
修改:ALTER TABLE A01 ALTER COLUMN A0101 TYPE VARCHAR(100);
删除:ALTER TABLE A01 DROP COLUMN A0101;
修改字段名称:ALTER TABLE A01 RENAME COLUMN Column_01 TO A0101;

10、获取第一行数据

SELECT
       ROW_NUMBER,
       DWNAME
FROM (
        SELECT
            ROW_NUMBER() OVER(ORDER BY B00) ROW_NUMBER,
            (SUBSTRING(P22.QJCODE,3,4)||'年第'||SUBSTRING(P22.QJCODE,8,9)||'季度'||P65.JXKH6501) AS DWNAME
        FROM PSKH65 P65
        INNER JOIN PSKH22 P22 ON P65.JXKH2200=P22.JXKH2200
        WHERE 1=1
        AND B00 = #{B00}
        AND P22.QJCODE = #{QJCODE}
        AND P65.JXKH2200 = #{JXKH2200}
) P65
WHERE 1=1
AND P65.ROW_NUMBER = '1'

11、查询KingBase数据库版本,在客户端中执行 select version()

12、删除某个时间前一个小时的数据记录
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 1);// 当前时间前一个小时的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String,Object> map = new HashMap<String,Object>();
map.put("CREATETIME", df.parse(df.format(calendar.getTime())));
this.pmPskhKhsjdrMapper.deletePSKH_RESULTFLAGSQL(map);
<!-- CREATETIME:类型是TIMESTAMP -->
<update id="deletePSKH_RESULTFLAGSQL" parameterType="map">
      DELETE FROM PSKH_RESULTFLAG WHERE CREATETIME <![CDATA[ < ]]> #{CREATETIME}
</update>

12、程序访问系统,提示

com.kingbase8.util.KSQLException: 致命错误: 已保留的连接位置为执行非复制请求的超级用户预留 (kbjdbc: autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)

解决方案:直接编辑数据库data目下的配置文件kingbase.conf将max_connections默认参数100调整到500,重启数据库即可。

 

13、kingbase表被删除以后,访问表时提示没有权限,需要如下重新授权

GRANT SELECT ON JXKH65 TO PUBLIC

14、拼接批量添加语句

SELECT
     'INSERT INTO JXKH65(JXKH6500,JXKH2200,B00,JXKH6501,JXKH6502,JXKH6504,JXKH6505,NODEID,CREATETIME,PXH,ALLPXH)VALUES('''||UPPER(UUID())||''','||'''00000000-0000-0000-0000-000000000000'','''||st.nodeid||''','''||st.NODENAME||''','''||st.DESCRIPTION||''','''||st.parentid||''','''||st.pindex||''','''||st.nodeid||''','''''''||TO_CHAR(NOW(),'YYYY-MM-DD HH24:MI:SS')||''''''','''||st.pindex||''','''||st.pindex||''''||');' AS ISQL,
     *
FROM "s_treenode" st ORDER BY pindex;

### Kingbase 数据库系统介绍 Kingbase 是一款由国内厂商研发的关系型数据库管理系统 (RDBMS),旨在为企业提供高效的数据存储、管理和分析能力。它支持标准 SQL 查询语言以及多种数据类型,适用于金融、政府、能源等多个行业领域[^1]。 #### 官方文档下载地址 官方文档通常可以通过访问 Kingbase 的官方网站获取。以下是具体方法: - 访问官网:https://www.kingbase.com/ - 进入“技术支持”或“开发者中心”页面。 - 找到对应版本的安装指南、运维手册和 API 文档链接进行下载[^4]。 --- ### 权限管理与用户配置 为了确保系统的安全性,在实际操作中需要合理分配文件夹权限。例如,通过 `chown` 命令可以将指定目录的所有权赋予特定用户组。命令如下所示: ```bash Chown -R kingbase:kingbase /path/to/kingbase/ ``` 上述指令的作用是递归更改 `/path/to/kingbase/` 文件夹及其子项归属至 `kingbase` 用户及同名用户组。 --- ### 版本升级流程概述 当现有环境中的 Kingbase 需要更新时,需先准备好新版本软件包。以 Linux 平台为例,假设目标版本为 V008R006M037B0010,则应完成以下准备工作之一部分: 1. 将压缩包上传至服务器上的适当位置; 2. 使用 tar 工具对其进行解压处理以便后续部署工作顺利开展。 示例代码片段展示如何正确执行这些步骤: ```bash cp kingbase-server-V008R006M037B0010-linux-x86_64.tar /target/directory/ tar xf kingbase-server-V008R006M037B0010-linux-x86_64.tar -C /installation/path/ ``` 以上脚本实现了从源路径拷贝二进制分发版到目的站点再展开结构两步动作连贯呈现[^2]。 --- ### License 控制机制解析 无论是传统物理机还是现代化容器化架构下的实例运行状态均受到许可证约束影响。对于采用 Docker Swarm 或 Kubernetes 编排引擎构建起来的服务集群而言同样如此——即它们都需要合法有效的授权才能正常运转下去。 查询当前激活情况可通过读取相应路径下的 metadata 文件实现。不同发行代号间略有差异: - **V8 及之后**: `$KINGBASE_HOME/license.dat` - **早期系列**(如 v7): `$KINGBASE_HOME/bin/license.dat` 注意保持环境变量定义准确无误以免发生定位错误现象[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值