Beleza André? Olha como está as declarações:
CREATE OR REPLACE TYPE "PHP_ARRAY" AS VARRAY(200000) OF VARCHAR2(20 CHAR) procedure p_createInventory(iType in number, iDesc in varchar2, iRecord in PHP_ARRAY, -- in varchar2, --multisel_values_table, omensagem out varchar2) O tipo já está como VARCHAR2(20 CHAR)! Att, Em 15 de outubro de 2014 12:51, Andre Santos andre.psantos...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: > > > Miltão > > Nesse cenário específico, pela mensagem de erro, o ambiente está usando > character-set UTF-16 que usa, no mínimo, 2 bytes por caractere. > Ou seja, quando é declarada uma variável VARCHAR2(9) **não** são 9 > caracteres, são 9 BYTES. > Porém a quantidade de bytes, para UTF-16, tem de ser múltiplo de 2 (bytes). > Para declarar o tamanho em "caracteres", pode usar a sintaxe: VARCHAR2(9 > CHAR). > > [ ]'s > > André Santos > > > Em 15 de outubro de 2014 12:35, 'Milton Bastos Henriquis Jr.' > miltonbas...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> > escreveu: > > >> >> Boa tarde pessoal >> >> Cenário: >> - Oracle database 11.2.0.3 >> - Servidor Oracle Linux 64 bits >> - Aplicação em PHP rodando num servidor IIS >> >> >> OCI-22141: given size [string] must be even in UTF-16 environment >> Cause: The given resize size is odd. In a UTF-16 environment, all >> characters are 2 bytes in length. >> Action: Ensure that the given size is even. >> >> >> Em uma certa tela do sistema, o usuário seleciona vários itens e clica >> num botão. >> Ao clicar nesse botão, esses itens são enviados pra um parâmetro de >> entrada de uma >> procedure. Como o número de itens é variado, o tipo desse parâmetro é um >> VARRAY. >> Cada item é uma string de 9 caracteres. >> O fato de ser 9 caracteres causa o erro acima - se passar 8 ou 10 >> caracteres >> funciona, não acontece o erro. Mas se for uma quantidade ímpar, acontece >> o erro. >> >> O que faço pra corrigir isso? Devo alterar algo em algum parametro NLS? >> >> >> >> Att, >> >> >> >> Uma certa tela do sistema >> >> > >