Nel mio db Oracle, ho notato un comportamento stranoquando si fa un confronto <= su due numeri. E ho trovato il problema. Il codice .net stava passando in uno dei valori come DbParameter di tipo string. E il tipo di colonna Oracle dell'altro numero era un varchar. Quindi essenzialmente quello che stava accadendo era un <= su due numeri che erano in realtà varchars.
Qualcuno può spiegare perché la seguente affermazione è vera in PLSQL?
"10000001" <= "50000"
risposte:
1 per risposta № 1Becuase-
SQL> select ascii("10000001") from dual;
ASCII("10000001")
-----------------
49
SQL> select ascii("50000") from dual;
ASCII("50000")
--------------
53
SQL> select "true" from dual where ascii("10000001") < ascii("50000");
"TRU
----
true