![](/img/trans.png)
[英]SQL Developer - SQL Error: ORA-00909: invalid number of arguments
[英]Getting Pl/sql ora-00909 error, where same code doesn't give any errors on mysql
我有一個頁面可以很好地與mysql和php配合使用,因此我試圖在同一頁面中將oracle與php一起使用。 我是pl / sql的新手,但遇到了問題。 (順便說一下,代碼在mysql上有效)
我在以下代碼示例中收到錯誤(ORA-00909),有人可以告訴我這是什么問題?
concat(isnull(concat(sihe.V_1_INT, '~'), ''),
isnull(concat(sihe.V_1_DOUBLE, '~'), ''),
isnull(concat(sihe.V_1_DATE_1, '~'), ''),
isnull(sihe.V_1_DATE_2, '')
) AS V_OBIS_CODE_VALUE_1,
編輯:mysql版本
concat(ifnull(concat(`sihe`.`fld_1_int`, '~'), ''),
ifnull(concat(`sihe`.`fld_1_double`, '~'), ''),
ifnull(concat(`sihe`.`fld_1_date_time_1`, '~'),
''),
ifnull(`sihe`.`fld_1_date_time_2`, '')) AS `fld_obis_code_value_1`,
您只能在Oracle CONCAT函數中傳遞兩個參數,因此會出現此錯誤,並且Oracle中也不支持isull
在oracle中嘗試以下簡單示例,由於oracle內部將空字符串更改為Null,因此您可以忽略null檢查
sihe.v_1_int||'~'||v_1_double||'~'||v_1_date_1||'~'||v_1_date_2
AS V_OBIS_CODE_VALUE_1
編輯1:-
通過使用COALESCE代替IFNULL並僅使用帶有兩個參數的CONCAT,我們可以在MYSQL和ORACLE 鏈接中使用以下代碼進行測試
select concat(concat(concat(concat(concat(concat('string1','~'),
COALESCE(null,'string2')),'~'),'string3'),'~'),
'string4') from dual;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.