人大金仓客户端ksql总结

信创改造使用人大金仓总结

1 人大金仓客户端免密连接问题

# 第一种连接方式
/opt/Kingbase/ES/V8/Server/bin/ksql -U system -h 192.168.0.199 -p 54321 -W 123456 -d test

# 基本上这些参数就够了
-U 用户名
-h ip
-p 端口
-W 密码
-d 数据库

# 第二种连接方式,这种方式也是来自于官方文档
/opt/Kingbase/ES/V8/Server/bin/ksql 'hostaddr=127.0.0.1 port=54321 user=system password=123456 dbname=test'
# 如果是变量需要用双引号括起来
/opt/Kingbase/ES/V8/Server/bin/ksql "hostaddr=${ip} port=${port} user=${user} password=${pwd} dbname=${db}"

hostaddr  ip
port      端口
user      用户名
password  密码
dbname    数据库

我在项目上使用第一种方式连接报错了
但在本地测试没有问题
第一种连接方式
在这里插入图片描述
第二种连接方式
在这里插入图片描述

2 客户端密码问题

如果密码带了被系统使用的特殊字符,那么只有第二种连接方式才能成功

例如(感叹号) !

# 第一种
/opt/Kingbase/ES/V8/Server/bin/ksql -U test -h 192.168.0.199 -p 54321 -W test!123 -d test

# 第二种
/opt/Kingbase/ES/V8/Server/bin/ksql "hostaddr=127.0.0.1 port=54321 user=test password=test!123 dbname=test"

第一种连接方式报错了
在这里插入图片描述
第二种连接方式可以
在这里插入图片描述
第二种双引号的也不行
在这里插入图片描述
第二种双引号这样可以
在这里插入图片描述

3 客户端导出\copy和copy的区别

# 先登录进数据库
/opt/Kingbase/ES/V8/Server/bin/ksql "hostaddr=127.0.0.1 port=54321 user=system password=123456 dbname=samples"

# 执行导出数据文件
copy (SELECT * FROM scott.emp) to '/tmp/emp.dat' with delimiter '@|@'  encoding 'UTF8' ;

# 导出数据文件
\copy (SELECT * FROM scott.emp) to '/tmp/emp.dat' with delimiter '@|@'  encoding 'UTF8'

# copy 和 \copy区别
copy  将数据导出到数据库所在服务器的的路径下
\copy 将数据导出到客户端所在服务器的的路径下

4 导入数据问题

# 导入刚才的数据,这种不会导入
copy scott.emp  from '/tmp/emp.dat' delimiter as '@|@' ENCODING 'UTF8'

# 这种才会导入
\copy scott.emp  from '/tmp/emp.dat' delimiter as '@|@' ENCODING 'UTF8'

导入前我已经truncate掉scott.emp的数据了
由于有主键约束所有重复导入会报错
在这里插入图片描述

5 导入NULL数据问题

在oracle中如果该字段是null值,那么导出的数据文件里这个字段对应的值是空
但人大金仓默认的数据文件空值是\N

查询的该表结果
在这里插入图片描述

copy导出的数据文件关于空值的处理
在这里插入图片描述

将\N替换问空串
在这里插入图片描述

如果直接用\copy导入它不会认为这个是null值而是空字符串

\copy scott.emp  from '/tmp/emp.dat' delimiter as '@|@' ENCODING 'UTF8'

通不过约束直接报错了
在这里插入图片描述
需要指定给定参数 null with ‘’ 这个即可

\copy scott.emp  from '/tmp/emp.dat' with null '' delimiter as '@|@' ENCODING 'UTF8'

在这里插入图片描述
同样也可以指定导出null值为空串

\copy (SELECT * FROM scott.emp) to '/tmp/emo.dat'  with delimiter '@|@'  encoding 'UTF8' null '' 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值