-
Q:解决ORA-01008: 并非所有变量都已绑定(详解问题所在)
A: 不需要将sql传入excuteUpdate()或excuteQuery()小括号中。 -
Q:批量插入提示ORA-01000: 超出打开游标的最大数(解决及原因)
A:Java代码在执行conn.createStatement()和 conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor;
当PreparedStatement或statement执行操作之后;
如果不需要使用结果集(ResultSet)的数据,就马上将Statement或PreparedStatement关闭。
尤其是在循环中,因为游标一直在不停的打开,而且没有关闭;
综上所述:代码在pstmt.execute()之后;
执行pstmt.close()方法即可
- :Oracle ORA-01861: 文字与格式字符串不匹配 解决方法:
注注注:如下的分号也有可能需要改为逗号
A:指定日期格式:to_date(‘2010-01-01’;
‘yyyy-mm-dd’)
to_date(‘2010-01-01 10:10:10’ ;‘yyyy-mm-dd hh24:mi:ss’)
- 分区建表:
CREATE TABLE m_r_mes_panel_mat_csm_t (
product_site STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
process_site STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
factory STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
eqp_type STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
oper_code STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
panel_id STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
glass_id STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
event_time STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
event_name STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
array_glass_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
cf_glass_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
consumable_type STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
consumable_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
consumable_spec STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
product_kind STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
product_group STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
product_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
owner_type STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
owner_code STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
eqp_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
unit STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
qty STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
event_user_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
bomver STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
last_event_flag STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
steel_bottle_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
required_qty STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
target_consumable_name STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
cartridge_compose_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
freebee_flag STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
machine_recipe_id STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
experiment_no STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
update_time STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
PRIMARY KEY (product_site, process_site, factory, eqp_type, oper_code, glass_id, event_time)
)
PARTITION BY RANGE (event_time) (
PARTITION VALUES < “2022/07/01 07:30:00”,
PARTITION “2022/07/01 07:30:00” <= VALUES < “2022/08/01 07:30:00”,
PARTITION “2022/08/01 07:30:00” <= VALUES < “2022/09/01 07:30:00”,
PARTITION “2022/09/01 07:30:00” <= VALUES < “2022/10/01 07:30:00”,
PARTITION “2022/10/01 07:30:00” <= VALUES < “2022/11/01 07:30:00”,
PARTITION “2022/11/01 07:30:00” <= VALUES < “2022/12/01 07:30:00”,
PARTITION “2022/12/01 07:30:00” <= VALUES < “2023/01/01 07:30:00”
)
STORED AS KUDU
- impala 或hive 给指定kudu库中的表添加列:
alter TABLE fact_cpu_supply_category add columns(supplier_name string COMMENT ‘供应商名称’);
https://blog.csdn.net/zy103118/article/details/103010989?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-103010989-blog-82684584.t0_edu_mix&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-103010989-blog-82684584.t0_edu_mix&utm_relevant_index=1
6.在字符串后添加某个字符:
https://blog.csdn.net/weixin_44240648/article/details/124352918
StringBuffer stringBuffer = new StringBuffer(arrayGlassId);
arrayGlassId = String.valueOf(stringBuffer.insert(9, “0”));
字符串中插入字符 StringBuilder
一个可变的字符序列。此类提供与StringBuffer的API,但不保证同步。议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快。
StringBuffer:线程安全,可变的字符序列
7.1. append
append方法始终在构建器的末尾添加这些字符
即在字符串末尾增加
如果z引用当前内容为“ start ”的字符串构建器对象,那么方法调用z.append(“le”)将导致字符串构建器包含“ startle ”
- insert
StringBuilder insert(int offset, char c)
在此序列中插入 char参数的字符串表示形式。
offset 表示字符插入的位置,该位置元素(包括该位置的元素)及之后字符串往后移
例如:如果z引用当前内容为“ start ”的字符串构建器对象,那么z.insert(4, “le”)会将字符串构建器更改为包含“ starlet ”。
8.在字符串中匹配一个反斜杠,正则表达式: ‘\\’
9.通过split()分割字符串
split()语法:
split() 方法根据匹配给定的正则表达式来拆分字符串。
public String[] split(String regex, int limit)
其中参数:regex – 正则表达式分隔符。limit – 分割的份数。
10.创建文件夹:
mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹, 如下:new File(“/tmp/one/two/three”).mkdirs();
执行后, 会建立tmp/one/two/three四级目录
new File(“/tmp/one/two/three”).mkdir();
则不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false
11.计算String类型日期时间差:https://blog.csdn.net/Next_SummerAgain/article/details/123900779
public static long timeDiff(String startTime, String endTime) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTimeDate = dateFormat.parse(startTime);//毫秒ms
Date endTimeDate = dateFormat.parse(endTime);//毫秒ms
long timeDiff = endTimeDate.getTime() - startTimeDate.getTime();
return timeDiff;
}
12.ORA-00904:标识符无效:
Oracle字段名区分大小写,解决方案:直接从Oracle数据库生成sql
13.java.sql.Date.valueOf处理日期格式IllegalArgumentException异常:
nasArcArchivingT.setUpdateTime(java.sql.Date.valueOf(String.valueOf((rs.getDate(16)))));
rs后的getXXX需要注意类型是否匹配