Annotation of embedaddon/php/ext/oci8/tests/bind_char_3.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: PL/SQL oci_bind_by_name with SQLT_AFC aka CHAR to CHAR parameter
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded('oci8')) die ("skip no oci8 extension");
! 6: require(dirname(__FILE__)."/connect.inc");
! 7: // The bind buffer size edge cases seem to change each DB version.
! 8: if (preg_match('/Release 10\.2\./', oci_server_version($c), $matches) !== 1) {
! 9: if (preg_match('/Release 11\.2\.0\.2/', oci_server_version($c), $matches) !== 2) {
! 10: die("skip expected output only valid when using Oracle 10gR2 or 11.2.0.2 databases");
! 11: }
! 12: }
! 13: if (preg_match('/^11\./', oci_client_version()) != 1) {
! 14: die("skip test expected to work only with Oracle 11g or greater version of client");
! 15: }
! 16: ?>
! 17: --ENV--
! 18: NLS_LANG=
! 19: --FILE--
! 20: <?php
! 21:
! 22: require(dirname(__FILE__).'/connect.inc');
! 23:
! 24: // Initialization
! 25:
! 26: $stmtarray = array(
! 27: "create or replace function bind_char_3_fn(p1 char) return char as begin return p1; end;",
! 28: );
! 29:
! 30: oci8_test_sql_execute($c, $stmtarray);
! 31:
! 32: // Run Test
! 33:
! 34: echo "Test 1.1 In Length: default. In Type: default. Out Length: default. Out Type: default\n";
! 35:
! 36: $s = oci_parse($c, "begin :bv2 := bind_char_3_fn(:bv1); end;");
! 37: $bv1 = 'abc';
! 38: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2);
! 39: if ($r)
! 40: do_e($s);
! 41: var_dump($bv1, $bv2);
! 42:
! 43: echo "Test 1.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
! 44:
! 45: $bv1 = 'abc';
! 46: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 47: if ($r)
! 48: do_e($s);
! 49: var_dump($bv1, $bv2);
! 50:
! 51:
! 52: echo "Test 1.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
! 53:
! 54: $bv1 = 'abc';
! 55: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 56: if ($r)
! 57: do_e($s);
! 58: var_dump($bv1, $bv2);
! 59:
! 60:
! 61:
! 62: echo "Test 1.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
! 63:
! 64: $bv1 = 'abc';
! 65: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
! 66: if ($r)
! 67: do_e($s);
! 68: var_dump($bv1, $bv2);
! 69:
! 70:
! 71: echo "Test 1.5 In Length: strlen. In Type: AFC. Out Length: strlen(input). Out Type: AFC\n";
! 72:
! 73: $bv1 = 'abc';
! 74: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1), SQLT_AFC);
! 75: if ($r)
! 76: do_e($s);
! 77: var_dump($bv1, $bv2);
! 78:
! 79:
! 80: echo "Test 1.6 In Length: strlen. In Type: AFC. Out Length: strlen(input)-1. Out Type: AFC\n";
! 81:
! 82: $bv1 = 'abc';
! 83: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1)-1, SQLT_AFC);
! 84: if ($r)
! 85: do_e($s);
! 86: var_dump($bv1, $bv2);
! 87:
! 88:
! 89: echo "Test 1.7 In Length: strlen. In Type: AFC. Out Length: strlen(input)+1. Out Type: AFC\n";
! 90:
! 91: $bv1 = 'abc';
! 92: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1)+1, SQLT_AFC);
! 93: if ($r)
! 94: do_e($s);
! 95: var_dump($bv1, $bv2);
! 96:
! 97:
! 98: echo "\n\nTests with ''\n\n";
! 99:
! 100: echo "Test 2.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
! 101:
! 102: $bv1 = '';
! 103: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
! 104: if ($r)
! 105: do_e($s);
! 106: var_dump($bv1, $bv2);
! 107:
! 108:
! 109: echo "Test 2.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
! 110:
! 111: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 112: if ($r)
! 113: do_e($s);
! 114: var_dump($bv1, $bv2);
! 115:
! 116:
! 117:
! 118: echo "Test 2.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
! 119:
! 120: $bv1 = '';
! 121: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 122: if ($r)
! 123: do_e($s);
! 124: var_dump($bv1, $bv2);
! 125:
! 126:
! 127:
! 128: echo "Test 2.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
! 129:
! 130: $bv1 = '';
! 131: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
! 132: if ($r)
! 133: do_e($s);
! 134: var_dump($bv1, $bv2);
! 135:
! 136:
! 137:
! 138: echo "Test 2.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC\n";
! 139:
! 140: $bv1 = '';
! 141: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
! 142: if ($r)
! 143: do_e($s);
! 144: var_dump($bv1, $bv2);
! 145:
! 146:
! 147:
! 148: echo "Test 2.6 In Length: 0. In Type: AFC. Out Length: 0. Out Type: AFC\n";
! 149:
! 150: $bv1 = '';
! 151: $r = oci_bind_by_name($s, ':bv1', $bv1, 0, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
! 152: if ($r)
! 153: do_e($s);
! 154: var_dump($bv1, $bv2);
! 155:
! 156:
! 157:
! 158: echo "Test 2.7 In Length: 1. In Type: AFC. Out Length: 1. Out Type: AFC\n";
! 159:
! 160: $bv1 = '';
! 161: $r = oci_bind_by_name($s, ':bv1', $bv1, 1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 1, SQLT_AFC);
! 162: if ($r)
! 163: do_e($s);
! 164: var_dump($bv1, $bv2);
! 165:
! 166:
! 167:
! 168: echo "\n\nTests with NULL\n";
! 169:
! 170: echo "Test 3.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
! 171:
! 172: $bv1 = null;
! 173: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
! 174: if ($r)
! 175: do_e($s);
! 176: var_dump($bv1, $bv2);
! 177:
! 178:
! 179: echo "Test 3.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
! 180:
! 181: $bv1 = null;
! 182: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 183: if ($r)
! 184: do_e($s);
! 185: var_dump($bv1, $bv2);
! 186:
! 187:
! 188:
! 189: echo "Test 3.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
! 190:
! 191: $bv1 = null;
! 192: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
! 193: if ($r)
! 194: do_e($s);
! 195: var_dump($bv1, $bv2);
! 196:
! 197:
! 198:
! 199: echo "Test 3.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
! 200:
! 201: $bv1 = null;
! 202: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
! 203: if ($r)
! 204: do_e($s);
! 205: var_dump($bv1, $bv2);
! 206:
! 207:
! 208: echo "Test 3.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC\n";
! 209:
! 210: $bv1 = null;
! 211: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
! 212: if ($r)
! 213: do_e($s);
! 214: var_dump($bv1, $bv2);
! 215:
! 216:
! 217:
! 218: echo "Test 3.6 In Length: -1. In Type: AFC. Out Length: 1. Out Type: AFC\n";
! 219:
! 220: $bv1 = null;
! 221: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 1, SQLT_AFC);
! 222: if ($r)
! 223: do_e($s);
! 224: var_dump($bv1, $bv2);
! 225:
! 226:
! 227: function do_e($s)
! 228: {
! 229: echo " Executing:\n";
! 230:
! 231: $r = @oci_execute($s);
! 232: if (!$r) {
! 233: $m = oci_error($s);
! 234: echo " Oci_execute error ORA-".$m['code']."\n";
! 235: return;
! 236: }
! 237: }
! 238:
! 239: // Cleanup
! 240:
! 241: $stmtarray = array(
! 242: "drop function bind_char_3_fn"
! 243: );
! 244:
! 245: oci8_test_sql_execute($c, $stmtarray);
! 246:
! 247: echo "Done\n";
! 248:
! 249: ?>
! 250: --EXPECTF--
! 251: Test 1.1 In Length: default. In Type: default. Out Length: default. Out Type: default
! 252: Executing:
! 253: string(3) "abc"
! 254: string(3) "abc"
! 255: Test 1.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
! 256: Executing:
! 257: string(3) "abc"
! 258: string(3) "abc"
! 259: Test 1.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
! 260: Executing:
! 261: string(3) "abc"
! 262: string(3) "abc"
! 263: Test 1.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
! 264: Executing:
! 265: string(3) "abc"
! 266: string(30) "abc "
! 267: Test 1.5 In Length: strlen. In Type: AFC. Out Length: strlen(input). Out Type: AFC
! 268: Executing:
! 269: string(3) "abc"
! 270: string(9) "abc "
! 271: Test 1.6 In Length: strlen. In Type: AFC. Out Length: strlen(input)-1. Out Type: AFC
! 272: Executing:
! 273: string(3) "abc"
! 274: string(6) "abc "
! 275: Test 1.7 In Length: strlen. In Type: AFC. Out Length: strlen(input)+1. Out Type: AFC
! 276: Executing:
! 277: string(3) "abc"
! 278: string(12) "abc "
! 279:
! 280:
! 281: Tests with ''
! 282:
! 283: Test 2.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
! 284: Executing:
! 285: string(0) ""
! 286: NULL
! 287: Test 2.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
! 288: Executing:
! 289: string(0) ""
! 290: NULL
! 291: Test 2.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
! 292: Executing:
! 293: string(0) ""
! 294: NULL
! 295: Test 2.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
! 296: Executing:
! 297: string(0) ""
! 298: NULL
! 299: Test 2.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC
! 300: Executing:
! 301: string(0) ""
! 302: NULL
! 303: Test 2.6 In Length: 0. In Type: AFC. Out Length: 0. Out Type: AFC
! 304: Executing:
! 305: string(0) ""
! 306: NULL
! 307: Test 2.7 In Length: 1. In Type: AFC. Out Length: 1. Out Type: AFC
! 308: Executing:
! 309: string(0) ""
! 310: NULL
! 311:
! 312:
! 313: Tests with NULL
! 314: Test 3.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
! 315: Executing:
! 316: NULL
! 317: NULL
! 318: Test 3.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
! 319: Executing:
! 320: NULL
! 321: NULL
! 322: Test 3.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
! 323: Executing:
! 324: NULL
! 325: NULL
! 326: Test 3.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
! 327: Executing:
! 328: NULL
! 329: NULL
! 330: Test 3.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC
! 331: Executing:
! 332: NULL
! 333: NULL
! 334: Test 3.6 In Length: -1. In Type: AFC. Out Length: 1. Out Type: AFC
! 335: Executing:
! 336: NULL
! 337: NULL
! 338: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>