データ型ã?Œç°¡å?˜ã?«æ±ºå®šã?•ã‚Œã‚‹å ´æ‰€ã?§ã?‚れã?°ã€?å¼?ã?®ä½•処ã?«ã?§ã‚‚動的パラメータを置ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
- BETWEENã?§ã?¯ã€?二ã?¤ç›®ã?¨ä¸‰ã?¤ç›®ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?®ã?©ã?¡ã‚‰ã?‹ã?Œå‹•的パラメータã?§ã?ªã?‘れã?°ã€?最åˆ?ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
一ã?¤ç›®ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?®åž‹ã?¯ã€?残りã?®äºŒã?¤ã?Œå‹•的パラメータã?§ã?ªã?‘れã?°ã€?ã??れら動的ã?§ã?¯ã?ªã?„パラメータã?®åž‹ã‚‚ã?—ã??ã?¯ã??れらを統å?ˆã?—ã?Ÿåž‹ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚
WHERE ? BETWEEN DATE('1996-01-01') AND ?
-- 型�DATE����れ��。
- BETWEENã?®äºŒã?¤ç›®ã€?三ã?¤ç›®ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
�れら�型�左辺�オペランド���型����れ��。
WHERE DATE('1996-01-01') BETWEEN ? AND ?
-- 型�DATE����れ��。
- INã?§ã?¯ä¸€è¦§ã?®ã?†ã?¡ä¸€ã?¤ã?§ã‚‚動的パラメータã?§ã?¯ã?ªã?„é …ç›®ã?Œã?‚れã?°ã€?左辺ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
左辺ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?®åž‹ã?¯ä¸€è¦§ã?«ã?‚ã‚‹å‹•çš„ã?§ã?ªã?„パラメータã?®é …ç›®ã?®åž‹ã‚’çµ±å?ˆã?—ã?Ÿåž‹ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚
WHERE ? NOT IN (?, ?, 'Santiago')
-- 型�CHAR����れ��。
- INã?§ã?¯ã€?最åˆ?ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?Œå‹•的パラメータã?§ã?¯ã?ªã?„ã?‹å‰?掲ã?®ãƒ«ãƒ¼ãƒ«ã?«ã‚ˆã‚Šã??ã?®åž‹ã?Œæ±ºã?¾ã‚‹å ´å?ˆã€?INã?®è¿°éƒ¨ã?®ä¸€è¦§ã?«å‹•的パラメータを置ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
値�一覧�置�れ�動的パラメータ�型��左辺�オペランド�型���も�����れ��。
WHERE FloatColumn IN (?, ?, ?)
-- 型�FLOAT����れ��。
- オペランドを2ã?¤æŒ?ã?¤æ¼”ç®—å?ã?®ã€?+・-・*・/・AND・OR・<・>・
=・<・>・<=ã?¨>=ã?§ã?¯ã€?片方ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã?Œã€?両方を動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。
動的パラメータ�型�も�片方�オペランド�型��り��。
WHERE ? < CURRENT_TIMESTAMP
-- 型�TIMESTAMP����れ��。
- CASTã?§ã?¯å¸¸ã?«å‹•的パラメータを利用ã?§ã??ã?¾ã?™ã€‚ã?“れã?«ã‚ˆã‚Šå‹•的パラメータã?«åž‹ã‚’与ã?ˆã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
CALL valueOf(CAST (? AS VARCHAR(10)))
- LIKE演算å?ã?®ç‰‡æ–¹ã?‚ã‚‹ã?„ã?¯ä¸¡æ–¹ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œå?¯èƒ½ã?§ã?™ã€‚
左辺を動的パラメータã?¨ã?—ã?Ÿå ´å?ˆã€?ã??ã?®åž‹ã?¯å?³è¾ºã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?¨å?Œã?˜ã‚‚ã?®ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚ã?ªã?Šæœ€å¤§é•·ã?¯åž‹ã?®æœ€å¤§é•·ã?¨ã?ªã‚Šã?¾ã?™ã€‚å?³è¾ºã‚’動的パラメータã?¨ã?—ã?Ÿå ´å?ˆã€?左辺ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?®é•·ã?•ã?¨åž‹ã?Œé?©ç”¨ã?•れã?¾ã?™ã€‚
(LIKEã?§ã?¯CHARã?¨VARCHARã?®åž‹ã‚’利用ã?™ã‚‹äº‹ã?Œå?¯èƒ½ã?§ã?™ã€‚詳細ã?¯Concatenationã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。)
WHERE ? LIKE 'Santi%'
--型�最大長�java.lang.Integer.MAX_VALUE�
--CHAR����れ��。
- 動的パラメータã?®?ã?¯ã€?||演算å?ã?®ç‰‡æ–¹ã?®å?´ã?«ã?®ã?¿ç½®ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
ã?™ã?ªã‚?ã?¡"? || ?"ã?¯ä¸?å?¯èƒ½ã?§ã?™ã€‚||演算å?ã?®ç‰‡å?´ã?«ã?‚ã‚‹?パラメータã?®åž‹ã?¯ã€?ã??ã?®å??対å?´ã?«ã?‚ã‚‹||演算å?ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?®å¼?ã?®åž‹ã?«ã‚ˆã?£ã?¦æ±ºã?¾ã‚Šã?¾ã?™ã€‚ã‚‚ã?—å??対å?´ã?®å¼?ã?®åž‹ã?ŒCHARã?‚ã‚‹ã?„ã?¯VARCHARã?§ã?‚れã?°ã€?動的パラメータã?®åž‹ã?¯ã??ã?®åž‹ã?®æœ€å¤§é•·ã?®VARCHARã?§ã?™ã€‚
ã‚‚ã?—å??対å?´ã?®å¼?ã?®åž‹ã?ŒCHAR FOR BIT DATAã?‚ã‚‹ã?„ã?¯VARCHAR FOR BIT DATAã?§ã?‚れã?°ã€?動的パラメータã?®åž‹ã?¯ã??ã?®æ–¹ã?®æœ€å¤§é•·ã?®VARCHAR FOR BIT DATAã?§ã?™ã€‚
SELECT BITcolumn || ?
FROM UserTable
-- 型�BITcolumn���最大長�CHAR FOR BIT DATA��り��。
- �件���?�表�れる動的パラメータ�利用��能��。��最��オペランド�置�れ�動的パラメータ�型�真�型����れ��。
å¼?ã?®äºŒã?¤ç›®ã?‚ã‚‹ã?„ã?¯ä¸‰ã?¤ç›®ã?®ã?†ã?¡ã€?片方ã? ã?‘を動的パラメータã?¨ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚動的パラメータã?®åž‹ã?¯ã€?ã‚‚ã?†ç‰‡æ–¹ã?®åž‹ã?¨å?Œã?˜ã‚‚ã?®ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚(ã?¤ã?¾ã‚Šå¯¾å¿œã?™ã‚‹ã?®ã?¯ä¸‰ã?¤ç›®ã?¨äºŒã?¤ç›®ã?®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã?¨ã?ªã‚Šã?¾ã?™ã€‚)
SELECT c1 IS NULL ? ? : c1
-- ã?“ã?®ä¾‹ã?§ã?¯å®Ÿè¡Œæ™‚ã?«æ—¢å®šå€¤ã‚’与ã?ˆã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
-- ã??ã?®å‹•的パラメータã?®åž‹ã?¯c1ã?¨å?Œã?˜åž‹ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚
-- :ã?®ä¸¡å?´ã?«å‹•的パラメータを置ã??ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。
- INSERTæ–‡ã?®valuesã?®ä¸€è¦§ã‚„selectã?®ä¸€è¦§ã?«ã€?動的パラメータを置ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
動的パラメータ�型�対象列�型���型����れ��。
INSERT INTO t VALUES (?)
-- 動的パラメータ�型��
-- t表�唯一��列���型��り��。
INSERT INTO t SELECT ?
FROM t2
-- �れ�����。
- 副����比較�れる?パラメータ��副�����択�れ���型を�り��。
例を挙���。
SELECT *
FROM tab1
WHERE ? = (SELECT x FROM tab2)
SELECT *
FROM tab1
WHERE ? = ANY (SELECT x FROM tab2)
-- 両方ã?®å ´å?ˆã?«ã?Šã?„ã?¦ã€?動的パラメータã?®åž‹ã?¯ã€?
-- tab2.x���型����れ��。
- UPDATEæ–‡ã?®å€¤ã?«å¯¾ã?—ã?¦å‹•的パラメータを置ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚動的パラメータã?®åž‹ã?¯ã€?対照表ã?®åˆ—ã?®åž‹ã?¨å?Œã?˜ã‚‚ã?®ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚
UPDATE t2 SET c2 =? -- c2���型����れ��。
- å?˜ä¸€ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’ã?¨ã‚‹-ã‚„+ã?®æ¼”ç®—å?ã?«ã?¦ã€?動的パラメータを利用å?¯èƒ½ã?§ã?™ã€‚
例を挙���。
CREATE TABLE t1 (c11 INT, c12 SMALLINT, c13 DOUBLE, c14 CHAR(3))
SELECT * FROM t1 WHERE c11 BETWEEN -? AND +?
-– 両方ã?®å?˜ä¸€ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’ã?¨ã‚‹æ¼”ç®—å?ã?®åž‹ã?¯ã€?文脈ã?«æ²¿ã?£ã?¦INTã?¨ã?ªã‚Šã?¾ã?™ã€‚
-- (ã?™ã?ªã‚?ã?¡ã€?c11ã?ŒINTã?ªã?®ã?§ã€?å?˜ä¸€ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã‚’ã?¨ã‚‹æ¼”ç®—å?ã‚‚INTã?®åž‹ã‚’ã?¨ã‚Šã?¾ã?™ã€‚)
- LENGTHã?«ã?¦ã€?動的パラメータを利用å?¯èƒ½ã?§ã?™ã€‚ã??ã?®åž‹ã?¯æœ€å¤§é•·ã?®VARCHARã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚
SELECT LENGTH(?)
- 定�比較
? = SOME (SELECT 1 FROM t)
-- �れ�有効��。動的�パラメータ�型�INTEGER����れ��。
1 = SOME (SELECT ? FROM t)
-- �れ�有効��。動的�パラメータ�型�INTEGER����れ��。
- ISå¼?ã?®å·¦è¾ºã?«å‹•的パラメータを置ã??ã?“ã?¨ã?Œã?§ã??ã€?ã??ã?®åž‹ã?¯çœŸå?½åž‹ã?¨ã?¿ã?ªã?•れã?¾ã?™ã€‚