掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
通過隱式轉(zhuǎn)換或不指定格式模型的顯式轉(zhuǎn)換將日期時間值轉(zhuǎn)換為文本時,格式模型由一個全局會話參數(shù)定義。根據(jù)源數(shù)據(jù)類型,這些參數(shù)名稱為? NLS_DATE_FORMAT?、?NLS_TIMESTAMP_FORMAT? 或 ?NLS_TIMESTAMP_TZ_ FORMAT?。這些參數(shù)的值可以在客戶端環(huán)境或 ?ALTER SESSION?語句中指定。

創(chuàng)新互聯(lián)公司提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁設(shè)計,品牌網(wǎng)站設(shè)計,廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10余年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破上1000+,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.
當不指定格式模型的顯式轉(zhuǎn)換對動態(tài)構(gòu)造的 SQL 語句中的日期時間值進行顯式轉(zhuǎn)換時,格式模型對會話參數(shù)的選擇過程會對數(shù)據(jù)庫安全性產(chǎn)生負面影響。
動態(tài)構(gòu)造的 SQL 語句是指由程序或者存儲過程生成的 SQL 語句。執(zhí)行動態(tài)構(gòu)造的 SQL 語句,需要 OceanBase 內(nèi)置的 PL 包 ?DBMS_SQL? 或與 PL 語句 ?EXECUTE IMMEDIATE? 相關(guān),但這些并不是唯一執(zhí)行動態(tài)構(gòu)造的 SQL 文本的方式。
如下所示,?start_date? 的數(shù)據(jù)類型為 ?DATE?,使用會話參數(shù) ?NLS_DATE_FORMAT? 中指定的格式模型將 ?start_date? 的值轉(zhuǎn)換為文本,再將結(jié)果傳遞到 SQL 文本中。日期時間格式模型可以簡單地由雙引號所包含的文本組成。
SELECT last_name FROM employees WHERE hire_date > '' || start_date || '';
說明
為顯式轉(zhuǎn)換的格式模型設(shè)置全球化參數(shù)的用戶可以決定上述轉(zhuǎn)換產(chǎn)生了什么文本。
若 SQL 語句由過程執(zhí)行,則該過程的執(zhí)行可能會由于session變量的修改而被SQL注入。當某些過程具有更高權(quán)限(例如Definer's Rights Procedure)時,造成的安全方面的影響可能更大。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流