[Sqlrelay-discussion] sqlrcur_getRowAssoc
Brought to you by:
mused
|
From: Jiří W. <jir...@gm...> - 2018-06-14 08:16:14
|
Hello,
I have an issue with sqlrcur_getRowAssoc, it returns rarely (5 times in row
after restart, sometimes in X+n request - very strange behavior) correct
data and in most cases incorrect - corrupted data.
Note: There is no issue to call mentioned query from sqldeveloper etc.
e.g. correct one:
Parsing Column Info
Actual row count: unknown
Affected row count: 0
Column count: 5
""."LOG_TYPE_ID","NUMBER", 22 (38,0) NOT NULL
""."LABEL","VARCHAR2", 1020 (0,0) NOT NULL
""."LOG_TYPE_TABLE_REFERENCE","VARCHAR2", 1020 (0,0) NOT NULL
""."REFERENCE","VARCHAR2", 1020 (0,0)
""."INCOMING_DB_ID","NUMBER", 22 (38,0) NOT NULL
incorrect one:
Parsing Column Info
Actual row count: unknown
Affected row count: 0
Column count: 5
""." ","NUMBER", 22 (38,0) NOT NULL
""."�P� ","VARCHAR2", 120 (0,0) NOT NULL
""."","VARCHAR2", 1020 (0,0)
""." �","NUMBER", 22 (38,0) NOT NULL
""."","UNKNOWN", 0 (0,0) NOT NULL
Versions
-------------
PHP 7.0.30-0ubuntu0.16.04.1
Ubuntu 16.04
SQL Relay 1.3.0
Oracle instant client 12.2.0.1.0-2
PHP code
---------------
> <?php
> error_reporting(E_ALL);
> ini_set('display_errors', 1);
> include(getenv('EM_DB_CONFIG'));
> echo '<h1>PACKAGE TYPE</h1>';
> $con = sqlrcon_alloc(
> $config['databaseConnection']['xy-client']['sqlr']['client']['host'],
> $config['databaseConnection']['xy-client']['sqlr']['client']['port'],
> '',
> $config['databaseConnection']['xy-client']['sqlr']['client']['user'],
>
> $config['databaseConnection']['xy-client']['sqlr']['client']['password'],
> 1,
> 3
> );
> sqlrcon_debugOn($con);
> echo '<pre>';
> $cur = sqlrcur_alloc($con);
>
> sqlrcur_prepareQuery($cur, "begin
> em_order.PCK_ORDER_LOG_TYPE.P_SELECT(:in1, :in2, :out1, :out2); end;");
> sqlrcur_inputBind($cur, "in1", null);
> sqlrcur_inputBind($cur, "in2", null);
> sqlrcur_defineOutputBindCursor($cur, "out1");
> sqlrcur_defineOutputBindInteger($cur, "out2");
> sqlrcur_executeQuery($cur);
> //$bindcur = sqlrcur_getOutputBindCursor($cur, "out1");
> $bindcur = sqlrcur_getOutputBindcursor($cur, "out1");
> sqlrcur_fetchFromBindCursor($bindcur);
> echo '</pre>';
> # print fields from table
> for ($i = 0; $i < sqlrcur_rowCount($bindcur); $i++) {
> var_dump(sqlrcur_getRowAssoc($bindcur, $i));
> /*
> for ($j = 0; $j < sqlrcur_colCount($bindcur); $j++) {
> echo sqlrcur_getField($bindcur, $i, $j);
> echo ", ";
> }
> echo "\n";
> */
> }
> sqlrcur_free($bindcur);
> sqlrcur_free($cur);
> sqlrcon_free($con);
>
> //======================
> echo '<h1>PACKAGE CARIER</h1>';
> $con1 = sqlrcon_alloc(
> $config['databaseConnection']['xy-client']['sqlr']['client']['host'],
> $config['databaseConnection']['xy-client']['sqlr']['client']['port'],
> '',
> $config['databaseConnection']['xy-client']['sqlr']['client']['user'],
>
> $config['databaseConnection']['xy-client']['sqlr']['client']['password'],
> 1,
> 3
> );
> sqlrcon_debugOn($con1);
> echo '<pre>';
> $cur1 = sqlrcur_alloc($con1);
> sqlrcur_prepareQuery($cur1, "begin
> em_order.PCK_CARRIER_10183.P_GET_CARRIER(:in1, :in2, :in3, :out1, :out2);
> end;");
> sqlrcur_inputBind($cur1, "in1", null);
> sqlrcur_inputBind($cur1, "in2", null);
> sqlrcur_inputBind($cur1, "in3", null);
> sqlrcur_defineOutputBindCursor($cur1, "out1");
> sqlrcur_defineOutputBindInteger($cur1, "out2");
> sqlrcur_executeQuery($cur1);
> //$bindcur = sqlrcur_getOutputBindCursor($cur, "out1");
> $bindcur1 = sqlrcur_getOutputBindcursor($cur1, "out1");
> sqlrcur_fetchFromBindCursor($bindcur1);
>
> echo '</pre>';
> # print fields from table
> for ($i = 0; $i < sqlrcur_rowCount($bindcur1); $i++) {
> var_dump(sqlrcur_getRowAssoc($bindcur1, $i));
> /*
> for ($j = 0; $j < sqlrcur_colCount($bindcur); $j++) {
> echo sqlrcur_getField($bindcur, $i, $j);
> echo ", ";
> }
> echo "\n";
> */
> }
> sqlrcur_free($bindcur1);
> sqlrcur_free($cur1);
> sqlrcon_free($con1);
|