FOR loopcs1 AS cursor1 CURSOR FOR
SELECT market_code AS market_code
FROM tb_market_code
FOR UPDATE
DO
-- 處理邏輯
END FOR;
優點:簡潔,無需 OPEN/FETCH/CLOSE。缺點:不支援 WITH HOLD,迴圈內不可 COMMIT/ROLLBACK。若無交易控制需求,推薦使用。
UPDATE tb_market_code SET market_code='0' WHERE CURRENT OF cursor1;
-- 必須宣告 FOR UPDATE 游標
DECLARE cursor1 CURSOR FOR SELECT market_code FROM tb_market_code FOR UPDATE;
FOR UPDATE 不可與 GROUP BY、DISTINCT、ORDER BY、FOR READ ONLY、UNION/EXCEPT/INTERSECT (UNION ALL 除外) 共用。
SELECT CASE a1
WHEN '1' THEN 'n1'
WHEN '2' THEN 'n2'
ELSE 'n3'
END AS aa1 FROM ...
LOCATE('y', 'dfdasfay')DAYS(DATE('2001-06-05')) - DAYS(DATE('2001-04-01')),DAYS 回傳自 0001-01-01 起算天數C 語言 UDF 範例見 sqllib\samples\cli\udfsrv.c。
CREATE TABLE test (
t1 SMALLINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 500, INCREMENT BY 1),
t2 CHAR(1)
);
單表僅允許一個 IDENTITY 欄位。
SELECT DEPTNO, DEPTNAME, COALESCE(MGRNO, 'ABSENT'), ADMRDEPT FROM DEPARTMENT
回傳第一個非空運算式,支援多參數,優於 Oracle ISNULL (僅兩參數)。
GET DIAGNOSTICS v_count = ROW_COUNT;
僅對 UPDATE/INSERT/DELETE 有效,對 SELECT INTO 無效。