在 Oracle 中,我在包中有一個函數(shù):function get_trans ( in_idcard in number, in_datefrom in date, in_dateto in date)return trans_rec_list parallel_enable pipelined;如果我像這樣通過 SQL Developer 調(diào)用 func:select field1, field12 from table(API.get_trans(1,TO_DATE('01/06/2018 00:00:00'), TO_DATE('21/06/2018 00:00:00')));一切正常,但是當(dāng)我像這樣從 C# .net Core 調(diào)用函數(shù)時:using (OracleConnection connection = new OracleConnection("MyConnectionString")) { connection.Open(); using (OracleCommand cmd = connection.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = String.Format("select field1, field12 from table(API.get_trans({0}, TO_DATE('{2}'), TO_DATE('{3}')))", 1, dates.Date_From.ToString("dd-MM-yyyy HH:mm:ss"), dates.Date_To.ToString("dd-MM-yyyy HH:mm:ss")); OracleDataReader er = cmd.ExecuteReader();我有錯誤 ORA-01843: not a valid month最后,如果我只是從cmd.CommandTextSQL Developer復(fù)制文本并在其中運行 - 一切正常另一個類似的函數(shù)不使用類型date參數(shù)也能很好地工作問題出在哪里?
1 回答

動漫人物
TA貢獻1815條經(jīng)驗 獲得超10個贊
您需要定義日期格式以獨立于環(huán)境的 NLS 設(shè)置。所以,而不是TO_DATE('01/06/2018 00:00:00')
你應(yīng)該使用TO_DATE('01/06/2018 00:00:00', 'dd/mm/yyyy hh24:mi:ss')
- 1 回答
- 0 關(guān)注
- 257 瀏覽
添加回答
舉報
0/150
提交
取消