工作中小細節總結(三)
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.(與財委業務交流)