1
oracle-pro-c
已推薦使用指示符變量作爲附加到主機變量的"NULL flags"
。根據文檔,我們可以將每個主變量與一個可選的指示變量(簡短類型)相關聯。例如:Oracle pro * c指標變量與查詢執行中的NVL
short indicator_var;
EXEC SQL SELECT xyz INTO :host_var:indicator_var
FROM ...;
我們也可以選擇使用NVL作爲記錄在https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm,例如,如:
EXEC SQL SELECT NVL(TO_CHAR(xyz), '') INTO :host_var
FROM ...;
哪一個是在性能方面更好?
使用指標變量可能是'更有效',但可能幾乎是無法衡量的。它確實意味着更少的SQL來解析服務器。它確實意味着更少的功能執行。我認爲'SQL更簡單'是一大好處。 –
@JonathanLeffler贊同較簡單的SQL,解析邏輯較少,指標變量越來越慢,尋找更好的解決方案的選項,沒有指示變量,速度更快,但是如果某個col是空值,那麼呢? –
我不太瞭解Oracle Pro \ * C能夠進一步提供幫助。我之前的評論(不是一個答案,不管它是否被注意到)是基於與其他數據庫管理系統(Oracle DBMS)的通用經驗 - 這就是爲什麼它不是答案。根據我的經驗,最好的做法是編寫客戶端(Pro \ * C)程序中的空值處理,而不是讓DBMS處理所有這些。我相信在Oracle和空字符串與空字符串之間存在一些問題,但是再次,我沒有Oracle工作的直接經驗來證實這一點。 –