工作中小细节总结(三)

41 工程配置
   1、通过built path 中的Source 的选择需要编译的文件

   2、通过Libraries 加入需要引入的包

42 oracle 导出一条或多条记录的insert语句
   鼠标放在表名上右击"export data",选择sql inserts ,填写where条件选择保存路径后导出

43 改造时,分析了解完整个流程,再进行改造。或者 先改造,多测试。

44 生产数据,临时变化的数据一定要复原

45 处理账务数据的时候,首先防重,其次校验需要的条件是否满足

46 自助生成id 参考非税SimpleRandomKeyGen.java
    1.SELECT FUNC_GET_UNIQUE_ID(20) FROM DUAL
    2.
create or replace function FUNC_GET_UNIQUE_ID (LEN in integer)
                   return varchar2 is  Result varchar2(20);
    begin
 IF 20=LEN THEN
   SELECT to_char(sysdate, 'YYYYMMDDHH24MI') ||
        ltrim(TO_CHAR(seq_random.nextval, '09999999'))
   INTO Result
   FROM dual;
 ELSIF 10=LEN THEN
   SELECT to_char(sysdate, 'MMDD') ||
        ltrim(TO_CHAR(SEQ_RANDOM_6.nextval, '099999'))
   INTO Result
   FROM dual;
 END IF;
 return(Result);


    end;

seq_random 和 seq_random_6  为oracle 的sequence-序列; 。nextval 得到下一个序列号值,。currval得到当前序列的值

create sequence sequence_name increase by 1 --(增量为1)
start with 10000--(初值)
nomaxvalue
nocycle
nocache

47 事务 java.sql.Connection conn  = new java.sql.Connection();
开启事务  
     conn.setAutoCommit(false)
事务回滚
conn.rollback();
             conn.setAutoCommit(true);
需要注意的是conn != null && conn.isClosed() == false       try catch
提交事务
     conn.commit();
             conn.setAutoCommit(true);

48  oracle 插入'&' 特殊字符

insert into TS_SYS_FUNC (FUNC_ID, FUNC_NAME, FUNC_URL, UP_FUNC_ID, BIND_ID, FUNC_LEVEL, AUTH_LEVEL, FUNC_STATUS, MEMO, ORD_ID, FUNC_TYPE, TRANS_ID)
values ('179', '批量未明确交易维护', '/kft/maintainPreSearchBatch.do?method=preSearchBatch$$$transID=02-01-06$$$sysCode=S020', '173', '179', '4', null, '1', null, 179, 'M', '02-01-06');

update TS_SYS_FUNC t
   set t.func_url = replace(t.func_url,'$$$' ,'&' )
where  t.func_id in ('172','173','163','164','154','155') or t.up_func_id in ('173','164','155');

49  设置金额格式
   java.text.DecimalFormat df = new DecimalFormat("0.00");
       df.format(double)

50  用主表的返回更新明细数据 (数据操作 使用SELECT 更新 )
update td_interface_oes_detail t
       set t.rtn_msg = (select t1.rtn_msg
                          from td_interface_oes_main t1
                         where t.id = t1.id )
    where t.seq_no = '10000'

分析:可以先写一个简单的demo,然后修改实际数据达到要求

51  关键字 instanceof

52  分页 request 和 sql配合
     requset 中存放当前页数 和 每页条数
sql 采用分页 函数

53  静态网页和动态网页的主要区别之处是什么?
静态,没有交互性。

54  include指令中使用page和file有没有区别?

55  request的getParameter和getAttribute获取的具体是什么参数

56  MERGE INTO  archive ar
      USING  ( SELECT  activity, description FROM  activities) ac
   ON  (ar.activity = ac.activity)  //此处为Merge的条件
  WHEN MATCHED THEN    //当条件成立时则执行下面的Update操作
      UPDATE SET 
         description = ac.description
  WHEN NOT MATCHED THEN  //当条件不成立时则执行下面的Insert操作
      INSERT 
         (activity, description)
         VALUES  (ac.activity, ac.description)
上面的语句用来对archive表进行更新与插入的操作,
当条件成立时用activities表的description字段值来更新archive表的description字段值,
当条件不成立时,则用activities表的activity, description字段值进行Insert操作。

merge into 必须是两张表吗?

嗯,需要

一张是插入,一张是源

57  如何补录完成后自动跳转到下一条
setList 保存id , 获取下一条的时候排除掉这些id;

58 修改字段类型number为varchar2
    方法1)新加一个字段(按照新的数据类型),然后把数据复制过来。(不足:改变了表的字段顺序)
--修改原字段名SERIAL_NO为SERIAL_NO_bak
alter table td_batch_head rename column SERIAL_NO to SERIAL_NO_bak;
--增加一个和原来字段名相同的字段SERIAL_NO
alter table td_batch_head add SERIAL_NO varchar2(38);
--将原来的SERIAL_NO_bak数据使用to_char函数更新到增加的字段SERIAL_NO
update td_batch_head set SERIAL_NO = to_char(SERIAL_NO_bak);
--更新完成,删除原来字段SERIAL_NO_bak
alter table td_batch_head drop column SERIAL_NO_bak;
方法2)新建一个表,再把数据复制过来
--方法二
alter table td_batch_head_temp1 rename to td_batch_head_temp1_bak;
-- Create table
create table TD_BATCH_HEAD_TEMP1
(
 SERIAL_NO           varchar2(38) not null,
 BANK_NO             VARCHAR2(9) not null,
 UNIT_NO             VARCHAR2(20) not null,
 UNIT_NAME           VARCHAR2(100),
 SUMMARY             VARCHAR2(200),
 IS_PRINT            INTEGER,
 PROC_DATE           VARCHAR2(8) not null,
 TOTAL_COUNT         NUMBER(10) default 0 not null,
 TOTAL_AMT           NUMBER(16,2) default 0 not null,
 BANK_RECV_DATE      VARCHAR2(10),
 BANK_RECV_TIME      VARCHAR2(8),
 BANK_SUCCESS_COUNT  NUMBER(10) default 0,
 BANK_SUCCESS_AMT    NUMBER(16,2),
 BANK_FAIL_COUNT     NUMBER(10) default 0,
 BANK_FAIL_AMT       NUMBER(16,2) default 0,
 BANK_SEND_DATE      VARCHAR2(10),
 BANK_SEND_TIME      VARCHAR2(8),
 FINANCE_TOTAL_COUNT NUMBER(10) default 0,
 FINANCE_SEND_DATE   VARCHAR2(10),
 FINANCE_SEND_TIME   VARCHAR2(8),
 OES_MAIN_ID         VARCHAR2(20),
 SEND_STATE          INTEGER,
 AC_NO_DS            VARCHAR2(50),
 KFT_MAIN_ID         VARCHAR2(20)
)
tablespace BASEDATA
 pctfree 10
 initrans 1
 maxtrans 255
 storage
 (
   initial 64K
   minextents 1
   maxextents unlimited
 );
-- Add comments to the table 
comment on table TD_BATCH_HEAD_TEMP1
 is '批量收款数据头表';
-- Add comments to the columns 
comment on column TD_BATCH_HEAD_TEMP1.SERIAL_NO
 is '标识号';
comment on column TD_BATCH_HEAD_TEMP1.BANK_NO
 is '银行编码';
comment on column TD_BATCH_HEAD_TEMP1.UNIT_NO
 is '单位编码';
comment on column TD_BATCH_HEAD_TEMP1.UNIT_NAME
 is '单位名称';
comment on column TD_BATCH_HEAD_TEMP1.SUMMARY
 is '摘要,如:学费、水电费等';
comment on column TD_BATCH_HEAD_TEMP1.IS_PRINT
 is '是否打印票据
0 否
1 是
';
comment on column TD_BATCH_HEAD_TEMP1.PROC_DATE
 is '日期';
comment on column TD_BATCH_HEAD_TEMP1.TOTAL_COUNT
 is '总笔数';
comment on column TD_BATCH_HEAD_TEMP1.TOTAL_AMT
 is '总金额';
comment on column TD_BATCH_HEAD_TEMP1.BANK_RECV_DATE
 is '银行接收日期';
comment on column TD_BATCH_HEAD_TEMP1.BANK_RECV_TIME
 is '银行接收时间';
comment on column TD_BATCH_HEAD_TEMP1.BANK_SUCCESS_COUNT
 is '银行返回批扣结果总笔数--成功';
comment on column TD_BATCH_HEAD_TEMP1.BANK_SUCCESS_AMT
 is '银行返回批扣结果总金额--成功';
comment on column TD_BATCH_HEAD_TEMP1.BANK_FAIL_COUNT
 is '银行返回批扣结果总笔数--失败';
comment on column TD_BATCH_HEAD_TEMP1.BANK_FAIL_AMT
 is '银行返回批扣结果总金额--失败';
comment on column TD_BATCH_HEAD_TEMP1.BANK_SEND_DATE
 is '银行发送批扣结果日期';
comment on column TD_BATCH_HEAD_TEMP1.BANK_SEND_TIME
 is '银行发送批扣结果时间';
comment on column TD_BATCH_HEAD_TEMP1.FINANCE_TOTAL_COUNT
 is '财政返回错误笔数';
comment on column TD_BATCH_HEAD_TEMP1.FINANCE_SEND_DATE
 is '财政返回日期';
comment on column TD_BATCH_HEAD_TEMP1.FINANCE_SEND_TIME
 is '财政返回时间';
comment on column TD_BATCH_HEAD_TEMP1.OES_MAIN_ID
 is '与OES主表主键关联';
comment on column TD_BATCH_HEAD_TEMP1.SEND_STATE
 is '(与财政相关联状态)-1 未发送  0 发送成功 1 发送失败 2 全部扣款成功 3全部扣款失败 4 部分扣款成功';
comment on column TD_BATCH_HEAD_TEMP1.AC_NO_DS
 is '代收专户账号 -- 区分 不同区委财政交易';
comment on column TD_BATCH_HEAD_TEMP1.KFT_MAIN_ID
 is '与KFT主表主键关联';
-- Create/Recreate primary, unique and foreign key constraints 
alter table TD_BATCH_HEAD_TEMP1
 add constraint PK_TD_BATCH_HEAD_TEMP1 primary key (SERIAL_NO)
 using index 
 tablespace BASEDATA
 pctfree 10
 initrans 2
 maxtrans 255
 storage
 (
   initial 64K
   minextents 1
   maxextents unlimited
 );


insert into TD_BATCH_HEAD_TEMP1
 (SERIAL_NO,
  BANK_NO,
  UNIT_NO,
  UNIT_NAME,
  SUMMARY,
  IS_PRINT,
  PROC_DATE,
  TOTAL_COUNT,
  TOTAL_AMT,
  BANK_RECV_DATE,
  BANK_RECV_TIME,
  BANK_SUCCESS_COUNT,
  BANK_SUCCESS_AMT,
  BANK_FAIL_COUNT,
  BANK_FAIL_AMT,
  BANK_SEND_DATE,
  BANK_SEND_TIME,
  FINANCE_TOTAL_COUNT,
  FINANCE_SEND_DATE,
  FINANCE_SEND_TIME,
  OES_MAIN_ID,
  SEND_STATE,
  AC_NO_DS,
  KFT_MAIN_ID)
 select to_char(SERIAL_NO),
        BANK_NO,
        UNIT_NO,
        UNIT_NAME,
        SUMMARY,
        IS_PRINT,
        PROC_DATE,
        TOTAL_COUNT,
        TOTAL_AMT,
        BANK_RECV_DATE,
        BANK_RECV_TIME,
        BANK_SUCCESS_COUNT,
        BANK_SUCCESS_AMT,
        BANK_FAIL_COUNT,
        BANK_FAIL_AMT,
        BANK_SEND_DATE,
        BANK_SEND_TIME,
        FINANCE_TOTAL_COUNT,
        FINANCE_SEND_DATE,
        FINANCE_SEND_TIME,
        OES_MAIN_ID,
        SEND_STATE,
        AC_NO_DS,
        KFT_MAIN_ID
   from TD_BATCH_HEAD_TEMP1_bak;
方法三、 创建备份表,备份数据,删除原表,修改表结构,导入数据。

59 重型方法和轻型方法的区分是?
UML/RUP/CMM这些重型方法

60 您好,我是XXX,我这边有一个XX问题想找XX.(与财委业务交流)

猜你喜欢

转载自blog.csdn.net/qq_35079856/article/details/77141328