Visualizzazione post con etichetta Oracle. Mostra tutti i post
Visualizzazione post con etichetta Oracle. Mostra tutti i post

giovedì 30 gennaio 2014

NodeJs - Oracle - No Bind Variables - "Error: ORA-01756: quoted string not properly terminated"


il problema della codifica con nodejs + oracle npm.

La soluzione è sempre quella di utilizzare le Bind Variables.

In alcuni casi dove non è possibile si procede con turn around:

var query = "UPDATE test SET  DESC_RISPOSTA = 'á';

oracle.connect(dbOracleConnection, function(err, connection) {
connection.execute(query, [], function(err, results) {
console.log(err);
console.log(results);
});
});

si ottiene questo errore :  Error: ORA-01756: quoted string not properly terminated

la soluzione più semplice è quella di utilizzare due funzionalità js per encodare correttamente la stringa

var query = unescape(encodeURIComponent("UPDATE test SET  DESC_RISPOSTA = 'á'));

lunedì 13 gennaio 2014

Encoding - NodeJs + Oralce

Qualche problem sulle codifiche di Encoding con NodeJS + Oracle utilizzano la npm oracle ?

Su debian (il server dove è installato il client Oracle e la app di NodeJs) risolto inserendo nel file /etc/environment  la stringa

NLS_LANG=.UTF8

naturalmente il db di riferimento è in UTF8.


[via github]





giovedì 7 novembre 2013

Oracle - Query - Paginated result with row_number()

Query per eseguire un subset delle row su oracle senza intaccare i parametri di orderby


SELECT *
FROM
  (SELECT FIELDA,
    FIELDB,
    FIELDC,
    ROW_NUMBER() OVER (ORDER BY FIELDC) R
  FROM TABLE_NAME
  WHERE FIELDA = 10
  )
WHERE R >= 10
AND R   <= 15;





martedì 23 luglio 2013

Oracle + Procedure + Tomcat + Connection Pool + Ibatis



Utilizzando il connection pool di tomcat via app attrraverso ibatis/mybatis  alcune chiamate a Store Procedure Oracle generavano errore
Caused by: java.lang.RuntimeException: unexpected invocation exception: unexpected invocation exception: null at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:138) at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:101) at $Proxy17.getResultSet(Unknown Source) at com.ibatis.sqlmap.engine.execution.SqlExecutor.getFirstResultSet(SqlExecutor.java:337) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:299) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:283) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)

La soluzione è semplicemente NON chiamare le procedure con ibatis.callProcedure() ma con ibatis.update()


[via]