相同SELECT查询返回不同结果:tblAzioni表数据异常求助
临时表tblAzioni查询异常:SELECT *正常,指定字段查询返回错误结果
问题概述
操作临时表tblAzioni时出现异常:执行调用UDF udfCalcolaCondizioni的INSERT语句前一切正常,但执行后仅SELECT * FROM tblAzioni能返回正确结果;显式指定所有字段查询时,部分字段返回错误值,导致后续数据操作逻辑失效。
相关代码
临时表创建语句
CREATE TEMPORARY TABLE IF NOT EXISTS tblAzioni ( ID INT AUTO_INCREMENT PRIMARY KEY, Listino VARCHAR(100), Sequenza INT, Prezzo DECIMAL(19, 8), AzionePrezzo VARCHAR(50), Sconto1 DECIMAL(13, 4), AzioneSconto1 VARCHAR(50), Sconto2 DECIMAL(13, 4), AzioneSconto2 VARCHAR(50), Sconto3 DECIMAL(13, 4), AzioneSconto3 VARCHAR(50), Sconto4 DECIMAL(13, 4), AzioneSconto4 VARCHAR(50), Sconto5 DECIMAL(13, 4), AzioneSconto5 VARCHAR(50), SeScontoTarget INT, TipoScontoTarget CHAR(3), ScontoTarget DECIMAL(13, 4), AzioneScontoTarget VARCHAR(50), Note VARCHAR(1000) );
引发异常的INSERT语句
INSERT INTO tblAzioni (ID, Listino, Sequenza, Prezzo, AzionePrezzo, Sconto1, AzioneSconto1, Sconto2, AzioneSconto2, Sconto3, AzioneSconto3, Sconto4, AzioneSconto4, Sconto5, AzioneSconto5, SeScontoTarget, TipoScontoTarget, ScontoTarget, AzioneScontoTarget) SELECT * FROM JSON_TABLE( udfCalcolaCondizioni(JsonTabAzioni, CodArticolo, Quantita, Data), '$[*]' COLUMNS ( ID INT PATH '$.ID', Listino VARCHAR(100) PATH '$.Listino', Sequenza INT PATH '$.Sequenza', Prezzo DECIMAL(19,8) PATH '$.Prezzo', AzionePrezzo VARCHAR(50) PATH '$.AzionePrezzo', Sconto1 DECIMAL(13,4) PATH '$.Sconto1', AzioneSconto1 VARCHAR(50) PATH '$.AzioneSconto1', Sconto2 DECIMAL(13,4) PATH '$.Sconto2', AzioneSconto2 VARCHAR(50) PATH '$.AzioneSconto2', Sconto3 DECIMAL(13,4) PATH '$.Sconto3', AzioneSconto3 VARCHAR(50) PATH '$.AzioneSconto3', Sconto4 DECIMAL(13,4) PATH '$.Sconto4', AzioneSconto4 VARCHAR(50) PATH '$.AzioneSconto4', Sconto5 DECIMAL(13,4) PATH '$.Sconto5', AzioneSconto5 VARCHAR(50) PATH '$.AzioneSconto5', SeScontoTarget INT PATH '$.SeScontoTarget', TipoScontoTarget CHAR(3) PATH '$.TipoScontoTarget', ScontoTarget DECIMAL(13,4) PATH '$.ScontoTarget', AzioneScontoTarget VARCHAR(50) PATH '$.AzioneScontoTarget' ) ) AS JsonAzioni;
异常现象
SELECT *查询结果正确:
1 LID00001 5 128.30000000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 1 PRZ 60.9600 Somma
- 指定所有字段查询返回错误结果:
执行语句:
SELECT ID, Listino, Sequenza, Prezzo, AzionePrezzo, Sconto1, AzioneSconto1, Sconto2, AzioneSconto2, Sconto3, AzioneSconto3, Sconto4, AzioneSconto4, Sconto5, AzioneSconto5, SeScontoTarget, TipoScontoTarget, ScontoTarget, AzioneScontoTarget FROM tblAzioni;
返回结果(错误点:TipoScontoTarget为空,ScontoTarget变为0.0000):
1 LID00001 5 128.30000000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 0.0000 Somma 1 0.0000 Somma
已尝试操作
- 调整INSERT语句,显式指定字段而非使用
*,问题仍未解决
内容的提问来源于stack exchange,提问作者erik capitanio
相关产品推荐
相关产品推荐

