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¤tSchema=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文本。