1. 前言

目前LightDB只有Linux版客户端,所以通过ltsql.jar实现ltsql的功能,跨平台支持windows版客户端。

2. 功能描述

重要

1、支持java -jar ltsql.jar –help,查看帮助

2、支持java -jar ltsql.jar -U username -d dbname -h IP -p port -W password -f xxx.sql,执行SQL脚本

3、支持java -jar ltsql.jar -U username -d dbname -h IP -p port -W password -c “select 1 from dual;”, 指定-c执行单条SQL

3. 参数含义

选项

是否必须(true/false)

含义

格式

-h,
--host

true


主机名,
数据库服务器主机

一般为:ip格式0.0.0.0 到
255.255.255.255

-p,
--port

true


端口,
数据库服务器端口

实际:0-65535


-U,
--username

true


用户名,
数据库用户名

实际数据库用户名,
如:lightdb

-W,
--password

true


密码,
数据库密码

实际数据库密码


-d,
--dbname

true


数据库名


实际数据库名,
如:lt_test

-c,
--command

false


命令,
仅运行单个命令(SQL或
内部命令)然后退出
使用英文双引号包裹,
如:”select 1 from dual”

-f,
--file

false


文件名
执行文件中的命令,
然后退出
使用英文双引号包裹,
如:”/root/test.sql”

-o,
--options



false




lightdb-
jdbc的url的其他参数



使用英文双引号包裹,多个参数用&连接,
如:”lightdbSyntaxCompatibleType=oracle&currentSchema=public”,
具体参数含义详见:

--help

false

帮助命令、无参



4. 注意事项

警告

1、执行sql脚本、单条sql的时候,会对文本进行事务控制。

2、sql可执行的必须要依赖ltjdbc,如果ltjdbc不可执行,那么本功能也不可执行。

3、环境必须有jre(java -version >=1.8), 执行的sql使用的连接池等,对于大sql文本的执行效率依赖环境,需要确定一下sql的条数或者文本的大小、或者查询表太大等情况。

4、对于prompt语句,sql不会去数据库中执行,查询打印日志,通过java的日志体现,如”prompt 1“例子,控制台、日志显示 ”prompt 1“;

5、ltsql.jar默认配置ightdbSyntaxCompatibleType=oracle,这样直接可以连接lightdb-oracle,如需要重置,使用-o参数 重新配置覆盖即可。

6、sql脚本可包含:plorasql匿名块,创建function、存储过程、包、type,SQL。对于plorasql匿名块、创建function、存储过程、包、type 文本必须以单行 / 分割。SQL是以 行末尾分号进行分割,对于以下sql分割不支持,业务使用注意:

-- 分割下面sql会出错
insert tableName values (1,'hello;
word');

select * from table where name = 'hello;
word';

...

7、sql文本可使用 – 的注释忽略,但是 – 必须在行首,不在行首的不会忽略,同时支持读取UTF-8和GB23112的sql文本。