]> granicus.if.org Git - php/commit
add _not yet 100% complete_ Unicode support
authorAntony Dovgal <tony2001@php.net>
Fri, 10 Nov 2006 16:56:19 +0000 (16:56 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 10 Nov 2006 16:56:19 +0000 (16:56 +0000)
commitd99f05f1a26aeaf15d1c5c7cbc35580c0e193306
tree5f88938f8ec635b4d34ae524c16051b59f5f5d0f
parent974b0ad2cdb8f19c7f599e443d9ec1b136ec1446
add _not yet 100% complete_ Unicode support

collections, statements and BLOBs seem to be working ok
though there are still some things to be done in order to make oci_bind_array_by_name() work with U-strings

Notes:
- in Unicode mode OCI8 always speaks to Oracle server using UTF-16, so all the conversions are done by the client lib.
This is why character set parameter of oci_connect() and NLS_LANG are ignored in U-mode.

- BLOBs and CLOBs behave quite differently in U-mode.
Reading data from a CLOB would result in Unicode string, while BLOBs would return binary string.
Also, all LOB utilities work with _bytes_ when BLOB is used and _characters_ when it's CLOB.
It's not that obvious, but it does make a lot of sense to me.
76 files changed:
ext/oci8/oci8.c
ext/oci8/oci8_collection.c
ext/oci8/oci8_interface.c
ext/oci8/oci8_lob.c
ext/oci8/oci8_statement.c
ext/oci8/php_oci8_int.h
ext/oci8/tests/array_bind_005.phpt
ext/oci8/tests/array_bind_008.phpt
ext/oci8/tests/array_bind_010.phpt
ext/oci8/tests/bind_long.phpt
ext/oci8/tests/bind_long_raw.phpt
ext/oci8/tests/bind_raw.phpt
ext/oci8/tests/bug27303.phpt
ext/oci8/tests/bug27303_2.phpt
ext/oci8/tests/bug27303_4.phpt
ext/oci8/tests/bug35973.phpt
ext/oci8/tests/bug36096.phpt
ext/oci8/tests/coll_011.phpt
ext/oci8/tests/coll_011_func.phpt
ext/oci8/tests/coll_012.phpt
ext/oci8/tests/coll_012_func.phpt
ext/oci8/tests/coll_013.phpt
ext/oci8/tests/coll_013_func.phpt
ext/oci8/tests/coll_014.phpt
ext/oci8/tests/coll_014_func.phpt
ext/oci8/tests/commit.phpt
ext/oci8/tests/commit_old.phpt
ext/oci8/tests/cursor_bind.phpt
ext/oci8/tests/cursors.phpt
ext/oci8/tests/cursors_old.phpt
ext/oci8/tests/define.phpt
ext/oci8/tests/define1.phpt
ext/oci8/tests/define_old.phpt
ext/oci8/tests/error.phpt
ext/oci8/tests/error1.phpt
ext/oci8/tests/error_old.phpt
ext/oci8/tests/fetch.phpt
ext/oci8/tests/fetch_all.phpt
ext/oci8/tests/fetch_array.phpt
ext/oci8/tests/fetch_assoc.phpt
ext/oci8/tests/fetch_into.phpt
ext/oci8/tests/fetch_into1.phpt
ext/oci8/tests/fetch_into2.phpt
ext/oci8/tests/fetch_object.phpt
ext/oci8/tests/fetch_row.phpt
ext/oci8/tests/field_funcs.phpt
ext/oci8/tests/field_funcs1.phpt
ext/oci8/tests/field_funcs_old.phpt
ext/oci8/tests/lob_001.phpt
ext/oci8/tests/lob_002.phpt
ext/oci8/tests/lob_003.phpt
ext/oci8/tests/lob_004.phpt
ext/oci8/tests/lob_006.phpt
ext/oci8/tests/lob_007.phpt
ext/oci8/tests/lob_008.phpt
ext/oci8/tests/lob_010.phpt
ext/oci8/tests/lob_011.phpt
ext/oci8/tests/lob_012.phpt
ext/oci8/tests/lob_013.phpt
ext/oci8/tests/lob_014.phpt
ext/oci8/tests/lob_016.phpt
ext/oci8/tests/lob_017.phpt
ext/oci8/tests/lob_018.phpt
ext/oci8/tests/lob_019.phpt
ext/oci8/tests/lob_020.phpt
ext/oci8/tests/lob_021.phpt
ext/oci8/tests/lob_022.phpt
ext/oci8/tests/lob_023.phpt
ext/oci8/tests/lob_024.phpt
ext/oci8/tests/lob_025.phpt
ext/oci8/tests/lob_026.phpt
ext/oci8/tests/lob_temp.phpt
ext/oci8/tests/lob_temp1.phpt
ext/oci8/tests/pecl_bug8816.phpt
ext/oci8/tests/serverversion.phpt
ext/oci8/tests/statement_cache.phpt