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