bug71422.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. --TEST--
  2. Bug #71422 (Fix ORA-01438: value larger than specified precision allowed for this column)
  3. --EXTENSIONS--
  4. oci8
  5. --FILE--
  6. <?php
  7. require(__DIR__.'/connect.inc');
  8. $stmtarray = array(
  9. "DROP TABLE BUG71422_TEST",
  10. "CREATE TABLE BUG71422_TEST (TEST_ID NUMBER(*,0) NOT NULL, LABEL VARCHAR2(50 CHAR), CONSTRAINT BUG71422_TEST_PK PRIMARY KEY (TEST_ID))",
  11. "INSERT INTO BUG71422_TEST (TEST_ID, LABEL) VALUES (1, 'Foo')"
  12. );
  13. oci8_test_sql_execute($c, $stmtarray);
  14. $stmt = oci_parse($c, 'SELECT LABEL AS RAW_QUERY FROM BUG71422_TEST WHERE TEST_ID=1');
  15. oci_execute($stmt);
  16. while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
  17. var_dump($row);
  18. }
  19. $stmt = oci_parse($c, 'SELECT LABEL AS NUMERIC_BIND_PARAMETER FROM BUG71422_TEST WHERE TEST_ID=:test_id');
  20. $value = 1;
  21. oci_bind_by_name($stmt, ':test_id', $value, -1, SQLT_INT);
  22. oci_execute($stmt);
  23. while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
  24. var_dump($row);
  25. }
  26. $stmt = oci_parse($c, 'SELECT LABEL AS STRING_BIND_PARAMETER FROM BUG71422_TEST WHERE TEST_ID=:test_id');
  27. $value = 1;
  28. oci_bind_by_name($stmt, ':test_id', $value, -1, SQLT_CHR);
  29. oci_execute($stmt);
  30. while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
  31. var_dump($row);
  32. }
  33. // Cleanup
  34. $stmtarray = array(
  35. "DROP TABLE BUG71422_TEST"
  36. );
  37. oci8_test_sql_execute($c, $stmtarray);
  38. ?>
  39. --EXPECT--
  40. array(1) {
  41. ["RAW_QUERY"]=>
  42. string(3) "Foo"
  43. }
  44. array(1) {
  45. ["NUMERIC_BIND_PARAMETER"]=>
  46. string(3) "Foo"
  47. }
  48. array(1) {
  49. ["STRING_BIND_PARAMETER"]=>
  50. string(3) "Foo"
  51. }