coll_019.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. --TEST--
  2. Test collection Oracle error handling collections and numbers (2)
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
  8. require(__DIR__.'/skipif.inc');
  9. ?>
  10. --FILE--
  11. <?php
  12. error_reporting(E_ALL ^ E_DEPRECATED);
  13. require __DIR__."/connect.inc";
  14. $ora_sql = "DROP TYPE ".$type_name;
  15. $statement = oci_parse($c,$ora_sql);
  16. @oci_execute($statement);
  17. echo "Test 0\n";
  18. $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF BLOB";
  19. $statement = oci_parse($c,$ora_sql);
  20. oci_execute($statement);
  21. $coll1 = oci_new_collection($c, $type_name);
  22. var_dump($coll1->append('a long string')); // invalid type for append
  23. var_dump($coll1->assignElem(1, 'a long string')); // invalid type for assignelem()
  24. var_dump($coll1->getElem(0));
  25. require __DIR__."/drop_type.inc";
  26. echo "Test 1\n";
  27. $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF NUMBER";
  28. $statement = oci_parse($c,$ora_sql);
  29. oci_execute($statement);
  30. $coll1 = oci_new_collection($c, $type_name);
  31. var_dump($coll1->assignElem(1, null)); // invalid location for null
  32. var_dump($coll1->getElem(0));
  33. echo "Test 2\n";
  34. var_dump($coll1->assignElem(1, 1234)); // invalid location for number
  35. var_dump($coll1->getElem(0));
  36. require __DIR__."/drop_type.inc";
  37. echo "Test 3\n";
  38. $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF VARCHAR2(1)";
  39. $statement = oci_parse($c,$ora_sql);
  40. oci_execute($statement);
  41. $coll1 = oci_new_collection($c, $type_name);
  42. var_dump($coll1->assignElem(1, 'abc')); // invalid location for string
  43. var_dump($coll1->getElem(0));
  44. require __DIR__."/drop_type.inc";
  45. echo "Test 4\n";
  46. $ora_sql = "CREATE TYPE ".$type_name." AS TABLE OF DATE";
  47. $statement = oci_parse($c,$ora_sql);
  48. oci_execute($statement);
  49. $coll1 = oci_new_collection($c, $type_name);
  50. var_dump($coll1->append(1)); // invalid date format
  51. var_dump($coll1->assignElem(1, '01-JAN-06')); // invalid location for date
  52. var_dump($coll1->getElem(0));
  53. require __DIR__."/drop_type.inc";
  54. echo "Done\n";
  55. ?>
  56. --EXPECTF--
  57. Test 0
  58. Notice: OCICollection::append(): Unknown or unsupported type of element: 113 in %s on line %d
  59. bool(false)
  60. Notice: OCICollection::assignElem(): Unknown or unsupported type of element: 113 in %s on line %d
  61. bool(false)
  62. bool(false)
  63. Test 1
  64. Warning: OCICollection::assignElem(): OCI-22165: given index [1] must be in the range of %s in %s on line %d
  65. bool(false)
  66. bool(false)
  67. Test 2
  68. Warning: OCICollection::assignElem(): OCI-22165: given index [1] must be in the range of %s in %s on line %d
  69. bool(false)
  70. bool(false)
  71. Test 3
  72. Warning: OCICollection::assignElem(): OCI-22165: given index [1] must be in the range of %s in %s on line %d
  73. bool(false)
  74. bool(false)
  75. Test 4
  76. Warning: OCICollection::append(): OCI-01840: input value not long enough for date format in %s on line %d
  77. bool(false)
  78. Warning: OCICollection::assignElem(): OCI-22165: given index [1] must be in the range of %s in %s on line %d
  79. bool(false)
  80. bool(false)
  81. Done