# 函数说明书

# 1、for循环及if判断语句的支持

1、for循环

例: 循环输出变量i的值0-9

非SQL模式

for (int i = 0 ; i <10; i++ )  
{      
	log_into_db("${i}");  
};  
1
2
3
4

SQL模式

for  (int i = 0 ; i <10; i++ )  
{      
	log_into_db "${i}";  
};  
1
2
3
4

2、if 判断语句

例:判断表名是否存在,并输入日志信息

非SQL模式:

boolean  c=table_exists("地区收入明细表");  
if  (!c){  
  	log_into_db("表地区收入明细表存在");  
 }else{  
 	log_into_db("表地区收入明细表不存在");  
 } ;  
1
2
3
4
5
6

SQL模式:

boolean  c=table_exists "地区收入明细表" ;  
if  (!c){  
  	log_into_db "表地区收入明细表存在";  
 }else{  
 	log_into_db "表地区收入明细表不存在";  
 } ;  
1
2
3
4
5
6

# 2、SQLDML函数

drop_table()

用途:可删除单表或多表。

语法:drop_table("t1, t2")

示例:

非SQL模式

drop_table("table_name1");  
drop_table("table_name1,table_name2");  
1
2

SQL模式

drop_table "table_name1";  
drop_table "table_name1,table_name2";  
1
2

truncate_table()

用途:清空表数据,可清空单表或多表。

语法:truncate_table("t1, t2")

示例:

非SQL模式

truncate_table("table_name1");  
truncate_table("table_name1,table_name2");  
1
2

SQL模式

truncate_table "table_name1";  
truncate_table "table_name1,table_name2";  
1
2

create_table()

用途:根据源表格式创建新表。

语法:create_table(table_name, like_name)

table_name:原表表名

like_name:要创建的表表名

示例:根据table_name1创建table_name2

非SQL模式

create_table("table_name2","table_name1");  
1

SQL模式

create_table "table_name2","table_name1";  
1

table_exists()

用途:检查表是否存在。

示例:如果没有表TBALE_NAME则按指定规则输出内容。

非SQL模式

If(table_exists("TBALE_NAME"))
{
  	log_into_db("表TBALE_NAME存在");  
 }else{  
 	log_into_db("表TBALE_NAME不存在");  
 } ;  
1
2
3
4
5
6

SQL模式

If(table_exists "TBALE_NAME")
{
  	log_into_db "表TBALE_NAME存在" ;  
 }else{  
 	log_into_db "表TBALE_NAME不存在" ;  
 } ; 
1
2
3
4
5
6

column_exists()

用途:检查列是否存在。

示例:如果表TBALE_NAME里没有D_COLUMN列,则按照规则输出内容。

非SQL模式

if (column_exists("D_COLUMN"))
{
  	log_into_db("列D_COLUMN存在");  
 }else{  
 	log_into_db("列D_COLUMN不存在");  
 } ;  
1
2
3
4
5
6

SQL模式

if (column_exists("D_COLUMN"))
{
  	log_into_db "列D_COLUMN存在" ;  
 }else{  
 	log_into_db "列D_COLUMN不存在" ;  
 } ; 
1
2
3
4
5
6

# 3、日期函数

now()

用途:返回当前日期时间

示例:TABLE_NAME表结构为:

A_COLUMN B_COLUMN TIME
DHSWA CKDHU

执行语句:

UPDATE TABLE_NAME SET TIME=('{now()}')

返回结果:

A_COLUMN B_COLUMN TIME
DHSWA CKDHU 2020-12-03 11:05:19

today()

用途:返回当前日期

示例:TABLE_NAME表结构为:

A_COLUMN B_COLUMN TODAY
DHSWA CKDHU

执行语句:

UPDATE TABLE_NAME SET TODAY=('{today()}')

返回结果:

A_COLUMN B_COLUMN TODAY
DHSWA CKDHU 2020-10-28

yyyymmdd()

用途:返回日期年月日,数值前面补0,可在括号里加减偏移日期。

示例:当前日期为20201026,TABLE_NAME表结构为:

YMD1 YMD2 YMD3

执行语句:

INSERT INTO TABLE_NAME(YMD1,YMD2,YMD3) VALUES ('{yyyymmdd()}', '{yyyymmdd(2)}', '{yyyymmdd(-2)}')

返回结果:

YMD1 YMD2 YMD3
20201026 20201028 20201024

yyyy-mm-dd()

用途:返回日期年月日,数值前面补0,可在括号里加减偏移日期。

示例:当前日期为2020-10-26,TABLE_NAME表结构为:

YMD1 YMD2 YMD3

执行语句:

INSERT INTO TABLE_NAME(YMD1,YMD2,YMD3) VALUES ('{yyyy_mm_dd()}', '{yyyy_mm_dd(2)}', '{yyyy_mm_dd(-2)}')

返回结果:

YMD1 YMD2 YMD3
2020-10-26 2020-10-28 2020-10-24

dd()

用途:返回两位数日期号数,数值前面补0,可在括号里加减偏移号数

示例:当前日期为20201201,TABLE_NAME表结构为:

DD1 DD2 DD3

执行语句:

INSERT INTO TABLE_NAME(DD1,DD2,DD3) VALUES ('{dd()}', '{dd(2)}', '{dd(-2)}')

返回结果:

DD1 DD2 DD3
01 03 29

day()

用途:返回日期号数,数值前面不补0,可在括号里加减偏移号数

示例:当前日期为20201201,TABLE_NAME表结构为:

DD1 DD2 DD3

执行语句:

INSERT INTO TABLE_NAME(DD1,DD2,DD3) VALUES ('{day()}', '{day(2)}', '{day(-2)}')

返回结果:

DD1 DD2 DD3
1 3 29

mmdd()

用途:返回日期月日,数值前面补0,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

MMDD1 MMDD2 MMDD3

执行语句:

INSERT INTO TABLE_NAME(YMD1,YMD2,YMD3) VALUES ('{mmdd()}', '{mmdd(2)}', '{mmdd(-2)}')

返回结果:

MMDD1 MMDD2 MMDD3
1201 1203 1129

mm_dd()

用途:返回日期月日,数值前面补0,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

MMDD1 MMDD2 MMDD3

执行语句:

INSERT INTO TABLE_NAME(YMD1,YMD2,YMD3) VALUES ('{mm_dd()}', '{mm_dd(2)}', '{mm_dd(-2)}')

返回结果:

MMDD1 MMDD2 MMDD3
12-01 12-03 11-29

yyyymm()

用途:返回日期年月,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

YM1 YM2 YM3

执行语句:

INSERT INTO TABLE_NAME(YM1,YM2,YM3) VALUES ('{yyyymm()}', '{yyyymm(2)}', '{yyyymm(-2)}')

返回结果:

YM1 YM2 YM3
202012 202102 202010

yyyy_mm()

用途:返回日期年月,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

YM1 YM2 YM3

执行语句:

INSERT INTO TABLE_NAME(YM1,YM2,YM3) VALUES ('{yyyy_mm()}', '{yyyy_mm(2)}', '{yyyy_mm(-2)}')

返回结果:

YM1 YM2 YM3
2020-12 2021-02 2020-10

mm()

用途:返回日期月份,个位数前补0,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

MM1 MM2 MM3

执行语句:

INSERT INTO TABLE_NAME(MM1,MM2,MM3) VALUES ('{mm()}', '{mm(2)}', '{mm(-2)}')

返回结果:

MM1 MM2 MM3
01 03 11

month()

用途:返回日期月份,个位数前不补0,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

MM1 MM2 MM3

执行语句:

INSERT INTO TABLE_NAME(MM1,MM2,MM3) VALUES ('{month()}', '{ month(2)}', '{ month(-2)}')

返回结果:

MM1 MM2 MM3
1 3 11

year()

用途:返回日期年份,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

YEAR1 YEAR2 YEAR3

执行语句:

INSERT INTO TABLE_NAME(YEAR1,YEAR2,YEAR2) VALUES ('{year()}', '{year (2)}', '{year (-2)}')

返回结果:

YEAR1 YEAR2 YEAR3
2020 2022 2018

lastmonthcurday()

用途:返回上月当天日期,若当天31号而上月不足31天,则返回上月最后一天日期,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

A_COLUMN B_COLUMN LASTCD
DHSWA CKDHU

执行语句:

UPDATE TABLE_NAME SET LASTCD=('{lastmonthcurday()}')

返回结果:

A_COLUMN B_COLUMN LASTCD
DHSWA CKDHU 20201101

last_month_curday()

用途:返回上月当天日期,若当天31号而上月不足31天,则返回上月最后一天日期,可在括号里加减偏移日期。

示例:当前日期为20201201,TABLE_NAME表结构为:

A_COLUMN B_COLUMN LASTCD
DHSWA CKDHU

执行语句:

UPDATE TABLE_NAME SET LASTCD=('{last_month_curday()}')

返回结果:

A_COLUMN B_COLUMN LASTCD
DHSWA CKDHU 2020-11-03

fistday()

用途:返回某月第一天日期,数值前面补0,可在括号里加减偏移月份。

示例:当前日期为20201203,TABLE_NAME表结构为:

FISTDAY1 FISTDAY2 FISTDAY3

执行语句:

INSERT INTO TABLE_NAME (FISTDAY1, FISTDAY2, FISTDAY3) VALUES ('{fistday()}', '{fistday(2)}', '{fistday(-2)}')

返回结果:

FISTDAY1 FISTDAY2 FISTDAY3
20201201 20210201 20201001

fist_day()

用途:返回某月第一天日期,数值前面补0,可在括号里加减偏移月份。

示例:当前日期为20201203,TABLE_NAME表结构为:

FISTDAY1 FISTDAY2 FISTDAY3

执行语句:

INSERT INTO TABLE_NAME (FISTDAY1, FISTDAY2, FISTDAY3) VALUES ('{fist_day()}', '{fist_day(2)}', '{fist_day(-2)}')

返回结果:

FISTDAY1 FISTDAY2 FISTDAY3
2020-12-01 2021-02-01 2020-10-01

lastday()

用途:返回某月最后一天日期,数值前面补0,可在括号里加减偏移月份。

示例:当前日期为20201203,TABLE_NAME表结构为:

LASTDAY1 LASTDAY2 LASTDAY3

执行语句:

INSERT INTO TABLE_NAME (LASTDAY1, LASTDAY2, LASTDAY3) VALUES ('{lastday()}', '{lastday(2)}', '{lastday(-2)}')

返回结果:

LASTDAY1 LASTDAY2 LASTDAY3
20201231 20210228 20201031

last_day()

用途:返回某月最后一天日期,数值前面补0,可在括号里加减偏移月份。

示例:当前日期为20201203,TABLE_NAME表结构为:

LASTDAY1 LASTDAY2 LASTDAY3

执行语句:

INSERT INTO TABLE_NAME (LASTDAY1, LASTDAY2, LASTDAY3) VALUES ('{last_day()}', '{last_day(2)}', '{last_day(-2)}')

返回结果:

LASTDAY1 LASTDAY2 LASTDAY3
2020-12-31 2021-02-28 2020-10-31

# 4、日志输出函数

log_into_db()

用途:写日志到数据库。

语法:log_into_db(message);

message:文本,日志内容;

示例:

非SQL模式

log_into_db("这是一段测试"); 返回:"这是一段测试"
log_into_db("{yyyymmdd()}"); 返回:”20201204”

SQL模式

log_into_db "这是一段测试"; 返回:"这是一段测试"
log_into_db "{yyyymmdd()}" ; 返回:”20201204”

# 5、跨库转换函数

set_db_by_name()

用途:根据名称选择数据库,后续的脚本将在这个数据库下执行。

示例:

非SQL模式

set_db_by_name("我的数据库")  
1

SQL模式

set_db_by_name "我的数据库"
1

sourceDb_to_targetDb()

用途:从一个数据库迁移表数据到另外一个数据库。

语法:data_gbasetogbase(from_db,sql, from_table_name, table_name)

from_db:源数据库名

sql:sql语句

from_table_name:源表名

table_name:目标表名

示例:

非SQL模式

data_gbasetogbase("我的数据库",  "",  "EM_BAS_LZ_LOGIN_INFO","EM_BAS_LZ_LOGIN_INFO"); 
data_gbasetogbase("我的数据库",  "select * from EM_BAS_LZ_LOGIN_INFO",  "","EM_BAS_LZ_LOGIN_INFO" );
1
2

SQL模式

data_gbasetogbase "我的数据库",  "",  "EM_BAS_LZ_LOGIN_INFO","EM_BAS_LZ_LOGIN_INFO"; 
data_gbasetogbase "我的数据库",  "select * from EM_BAS_LZ_LOGIN_INFO",  "","EM_BAS_LZ_LOGIN_INFO";
1
2