痛点:
自己在工作中主要使用notepad++进行编辑sql,而notepad++并不具备sql关键字自动大写的功能,所以需要通过程序来完成。有的人会说你可以用dbeaver之类的工具来写sql呀? 这类工作确实可以关键字大写,个人习惯用notepad++。
话不多说,上代码。

代码中涉及的keyword.txt文件存放的是hive sql官方定义的关键字,以逗号分隔。关键字如下:

add,admin,after,all,alter,analyze,and,archive,array,as,asc,authorization,before,between,bigint,binary,boolean,both,bucket,buckets,by,cascade,case,cast,change,char,cluster,clustered,clusterstatus,collection,column,columns,comment,compact,compactions,compute,concatenate,conf,continue,create,cross,cube,current,current_date,current_timestamp,cursor,data,database,databases,date,datetime,day,dbproperties,decimal,deferred,defined,delete,delimited,dependency,desc,describe,directories,directory,disable,distinct,distribute,double,drop,elem_type,else,enable,end,escaped,exchange,exclusive,exists,explain,export,extended,external,false,fetch,fields,file,fileformat,first,float,following,for,format,formatted,from,full,function,functions,grant,group,grouping,having,hold_ddltime,hour,idxproperties,if,ignore,import,in,index,indexes,inner,inpath,inputdriver,inputformat,insert,int,intersect,interval,into,is,items,jar,join,keys,key_type,lateral,left,less,like,limit,lines,load,local,location,lock,locks,logical,long,macro,map,mapjoin,materialized,minus,minute,month,more,msck,none,noscan,not,no_drop,null,of,offline,on,option,or,order,out,outer,outputdriver,outputformat,over,overwrite,owner,partialscan,partition,partitioned,partitions,percent,plus,preceding,preserve,pretty,principals,procedure,protection,purge,range,read,readonly,reads,rebuild,recordreader,recordwriter,reduce,regexp,reload,rename,repair,replace,restrict,revoke,rewrite,right,rlike,role,roles,rollup,row,rows,schema,schemas,second,select,semi,serde,serdeproperties,server,set,sets,shared,show,show_database,skewed,smallint,sort,sorted,ssl,statistics,stored,streamtable,string,struct,table,tables,tablesample,tblproperties,temporary,terminated,then,timestamp,tinyint,to,touch,transactions,transform,trigger,true,truncate,unarchive,unbounded,undo,union,uniontype,uniquejoin,unlock,unset,unsigned,update,uri,use,user,using,utc,utctimestamp,values,value_type,varchar,view,when,where,while,window,with,year

hive sql的关键字小写转大写代码如下:

import java.io.{BufferedWriter, FileInputStream, FileWriter}object SqlFormat {def main(args: Array[String]): Unit = {file("D:\\workspace\\pinko\\sql-parse\\src\\main\\resources\\test.sql")
//    val hql = "select * from a"
//
//    println(replaceHql(hql, "select"))}def read(fileName: String): String = {val lines =scala.io.Source.fromInputStream(new FileInputStream(fileName),"utf-8").getLinesval sb = new StringBuilder()lines.foreach(sb.append(_).append("\n"))return sb.toString}def replaceHql(hql:String, key:String):String = {return hql.replaceAll("\\b" + key + "\\b",key.toUpperCase)}def file(fileName: String): Unit = {var hql=read(fileName)val keyWord =read("C:\\Users\\PINKO\\Desktop\\gz\\keyword.txt")val keyArr=keyWord.split(",")for(w <- keyArr) {hql =replaceHql(hql,w)}
//    println(hql)val bufferWriter =new BufferedWriter(new FileWriter(fileName))bufferWriter.write(hql)bufferWriter.close}}

把hive sql的关键字小写转大写的小程序相关推荐

  1. python人民币小写转大写_Python小程序 -- 人民币小写转大写辅助工具

    大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考. 输入 ...

  2. python人民币小写转大写_Python小程序人民币小写转大写辅助工具

    大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考. 输入 ...

  3. 设置PL/SQL Developer关键字自动变成大写

    Tools-->Preferences-->Editor-->Keyword case-->Uppercase

  4. 关于金额转化为大写的小程序

    package com.lanou.review.money; import java.util.Scanner; /**  * 输入整数价钱 输出大写金额  */ public class Mone ...

  5. 数字用计算机写大写,微信小程序学习用:大写计算器;数字转换为大写

    [AppleScript] function digitUppercase(n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', ' ...

  6. hive SQL 创建数据库,创建hive表、查询时,其表名,字段,统统不区分大写(在底层一律转换为小写)

    hive SQL 创建数据库,创建hive表.查询时,其表名,字段,统统不区分大写(在底层一律转换为小写) (1).默认default数据库 hive默认自带一个名为default的数据库,如果建表时 ...

  7. Hive Sql 大全(hive函数,hive表)

    Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...

  8. 工作中使用Hive SQL的几个知识点(建议收藏)

    hive是基于Hadoop的一个数据仓库工具,用来进行数据的ETL,这是一种可以存储.查询和分析存储在Hadoop中的大规模数据的机制.hive能将结构化的数据文件映射为一张数据库表,并提供SQL查询 ...

  9. Hive SQL 监控系统 - Hive Falcon

    1.概述 在开发工作当中,提交 Hadoop 任务,任务的运行详情,这是我们所关心的,当业务并不复杂的时候,我们可以使用 Hadoop 提供的命令工具去管理 YARN 中的任务.在编写 Hive SQ ...

  10. Hadoop Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

最新文章

  1. 关于数据中台的深度思考与总结(超级干货)
  2. 《让系统发生重大宕机事故的15个方法》
  3. LSTM之父撰文,纪念这位图灵奖遗珠、“AI理论之父”
  4. MyBatis 3在XML文件中处理大于号小于号()的方法(转)
  5. C++手册_迅为干货 | C程序调用shell
  6. 字符串的方法、注释及示例1.
  7. 汽车电子专业知识篇(一)-汽车行业质量人必知的41个体系术语
  8. android限制输入字符的范围,Android EditText 对输入字数和内容范围进行限制
  9. (十三) 深入浅出TCPIP之TCP套接字参数
  10. 第7篇:Flowable快速工作流脚手架Jsite_请假实战_HR审批
  11. V8 之旅: 垃圾回收器
  12. linux有许多sed进程,Linux进程与性能监控
  13. mysql 创建带参数的存储过程_在MySQL中创建带有IN和OUT参数的存储过程的方法
  14. 简述计算机的主要分类及应用领域,【内存分类及特点是什么】_简述计算机内存的分类及各自特点?...
  15. Redis12-事件
  16. Spring boot CommandLineRunner接口使用例子
  17. 数字孪生城市可视化运营管理系统 智慧城市解决方案
  18. ardupilot 关于设备车Rover的学习《2》------如何解锁
  19. cesium获取模型实时坐标_cesium获取坐标及高程
  20. escalating to SIGTERM问题出现的原因

热门文章

  1. android 模拟器 电脑配置,手游安卓模拟器多开对电脑配置要求与占用浅谈
  2. 信息系统运行管理员有必要考吗?现在备考还来得及吗?
  3. 罗技鼠标驱动安装一直初始化和正在安装问题详解
  4. 小米手机 浏览器 添加收藏页面到主页
  5. 《第一行代码(第三版)》kotlin开发Android,学习笔记(进行中ing)
  6. easydarwin 安装_EasyDarwin HLS直播详细配置指南
  7. 内网服务器做了映射还是无法用公网访问,内网PC无法使用服务器NAT映射后的公网地址访问服务器的故障分析...
  8. 2020-04-06
  9. 日期/时间控件DateTimePicker
  10. 二哥杂货铺matlab安装步骤,Matlab2017a软件安装教程