資料庫服務端非本機時,需在「客戶機配置輔助程序」中配置連接。
控制中心無法直接增刪改數據,需寫 SQL。Quest 工具雖可增數據,但不支援複製/貼上/Tab 鍵,逐個輸入極不便。PB 可單元格編輯,但編輯按鈕與刪除表按鈕過近,誤觸風險高。
必須用子查詢:
select * from (select a, b, c from table1 order by a) as tab
前提是已打補丁。
TRIM 函數,需用 LTRIM(RTRIM())。INSERT 不能用表達式賦值,需先賦給變量。SELECT * FROM TABLE FETCH FIRST N ROWS ONLY 在存儲過程中不可用。存儲過程可用動態 SQL,但函數不可用。
遇到 COMMIT 或 ROLLBACK 時自動關閉游標,慎用單獨提交。
Proc Builder 調試易記憶體不足、畫面花屏;斷點暫停稍長即超時。
日期變量 + 1 MONTHS 若遇 2 月 29 日會報錯 (SQLSTATE 01506)。替代方案:取當月第一天為基準再加減月份。
不可用 SELECT ... INTO ...,必須用 SET V = (SELECT ...)。範例:
drop function SXFM.ISORDERSUBMITDATE;
create FUNCTION SXFM.ISORDERSUBMITDATE(IN_ROW_ID DECIMAL(16,0))
RETURNS DATE
LANGUAGE SQL
BEGIN ATOMIC
DECLARE V_SUBMIT_DATE DATE;
DECLARE V_SELL_ID DECIMAL(16, 0);
DECLARE V_BUY_ID DECIMAL(16, 0);
SET V_SELL_ID = (SELECT COALESCE(RECEIVE_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);
SET V_BUY_ID = (SELECT COALESCE(PAY_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);
SET V_SUBMIT_DATE = (SELECT DATE(MAX(A.SUBMIT_DATE)) FROM AM_AUDIT_QUEUE A, SM_USER B, SM_USER C
WHERE A.TABLE_CODE='IS_ORDER' AND A.TABLE_ROW_ID=IN_ROW_ID
AND A.AUDIT_EMP_ID=C.ROW_ID AND C.BRANCH_ID=V_BUY_ID
AND A.SUBMIT_EMP_ID=B.ROW_ID AND B.BRANCH_ID=V_SELL_ID);
RETURN V_SUBMIT_DATE;
END
#SYNC 10;