Estoy tratando de insertar los datos de la hoja de cálculo en una base de datos mysql. El problema es que algunas celdas de la columna 'CLIENTE' están vacías y esto provoca el siguiente error al intentar ejecutar el código:
"Valor entero incorrecto: '' para la columna 'CLIENTE' en la fila 1"
Estoy tratando de reemplazar las celdas vacías con un valor 'nulo' al preparar la consulta, pero no lo consigo.
Agradezco la ayuda de todos.
Gracias
Hoja de cálculo:
function writeManyRecords() { const conn = Jdbc.getConnection(dbUrl, user, userPwd); conn.setAutoCommit(false); const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getSheetByName('FREEZERS'); const data = sheet.getDataRange().getValues(); const start = new Date(); var stmt = conn.prepareStatement('INSERT INTO FREEZERS ' + '(PATRIMONIO,DESCRICAO,CLIENTE,LOCAL_ESTOQUE,LOCAL_ANTERIOR_ESTOQUE) values (?, ?, ?, ?, ?)'); for (var i = 1; i < data.length; i++) { stmt.setString(1,data[i][0]); stmt.setString(2,data[i][1]); if(!data[i][2] === '') { stmt.setString(3,data[i][2]); } stmt.setNull(3,4); stmt.setString(4,data[i][3]); stmt.setString(5,data[i][4]); stmt.addBatch(); Logger.log('patrimonio: '+data[i][0]+'descricao: ' + data[i][1] +' cliente: '+ data[i][2]) } const batch = stmt.executeBatch(); conn.commit(); conn.close(); const end = new Date(); Logger.log('Time elapsed: %sms for %s rows.', end - start, batch.length); }Como conjetura:
if (!data[i][2] === '') { stmt.setString(3,data[i][2]) } else { stmt.setNull(3,0) } // second number: 0 - null, 4 - integer, etc