oracle、文件处理

本文总结了Oracle数据库操作中遇到的错误,如ORA-01008和ORA-01000,并提供了相应的解决策略。还涉及到Java中处理日期格式、字符串操作、创建文件夹、计算日期时间差的方法。同时提到了Java SQL处理中的问题,如字段名大小写敏感和处理日期异常的注意事项。
摘要由CSDN通过智能技术生成
  1. Q:解决ORA-01008: 并非所有变量都已绑定(详解问题所在)
    A: 不需要将sql传入excuteUpdate()或excuteQuery()小括号中。

  2. Q:批量插入提示ORA-01000: 超出打开游标的最大数(解决及原因)
    A:Java代码在执行conn.createStatement()和 conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor;

当PreparedStatement或statement执行操作之后;
如果不需要使用结果集(ResultSet)的数据,就马上将Statement或PreparedStatement关闭。
尤其是在循环中,因为游标一直在不停的打开,而且没有关闭;
综上所述:代码在pstmt.execute()之后;
执行pstmt.close()方法即可

  1. :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’)

  1. 分区建表:

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

  1. 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 ”

  1. 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需要注意类型是否匹配

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值