[firebase-br] Tamanho de variável em Stored Procedure

Maciel Soncini Bueno maciel em 2msolutions.com.br
Qui Set 22 16:27:52 -03 2005


Como faço para obter o tamanho de uma variável tipo VARCHAR ou melhor, do
seu conteúdo numa Stored Procedure, extrair uma parte dela e associar a
outra variável?

Fiz o trecho abaixo mas da erro de compilação.

Se alguém puder ajudar, agradeço.

CREATE PROCEDURE SP_INS_XLAB00001 (
    PINOME VARCHAR(40),
    PINUM_RG VARCHAR(15),
    PICPF VARCHAR(15),
    PISEXO CHAR(1),
    PIOBS VARCHAR(50),
    PIFONE_RES VARCHAR(20),
    PIFONE_COM VARCHAR(20),
    PIFONE_CEL VARCHAR(20),
    PIFONE_FAX VARCHAR(20),
    PILOGRADOURO VARCHAR(60),
    PINUMERO VARCHAR(6),
    PICOMPL VARCHAR(60),
    PIBAIRRO VARCHAR(50),
    PICEP VARCHAR(9),
    PICIDADE VARCHAR(38),
    PIUF CHAR(2),
    PIEMAIL VARCHAR(50),
    PIDATA_NASC DATE,
    PIANOS SMALLINT,
    PIMESES SMALLINT,
    PIDIAS SMALLINT,
    PIPRONTUARIO VARCHAR(10))
RETURNS (
    POID00001 INTEGER)
AS
DECLARE VARIABLE "vTamanho" INTEGER;
begin
     "vTamanho" = length(:"piNome");  // Da erro nesta linha
     while (substring(:"piNome" from "vTamanho" for 1) >= '0' and
            substring(:"piNome" from "vTamanho" for 1) <= '9' and
            "vTamanho" > 0) do
     begin
       "vTamanho" = "vTamanho" - 1;
       :"piNome" = substring(:"piNome" from 1 for "vTamanho");  // Parece
que também da erro nesta
     end

     "POID00001" = gen_id(gen_id00001_xlab00001,1);

     IF (:piDATA_NASC = '30.12.1899') THEN
       "PIDATA_NASC" = NULL;
     insert into xlab00001
       (ID00001, NOME, NUM_RG, CPF, SEXO, OBS, FONE_RES, FONE_COM, FONE_CEL,
FONE_FAX,
        LOGRADOURO, NUMERO, COMPL, BAIRRO, CEP, CIDADE, UF, EMAIL,
DATA_NASC, ANOS, MESES, DIAS, PRONTUARIO)
     values
       (:poid00001, :piNOME, :piNUM_RG, :piCPF, :piSEXO, :piOBS,
:piFONE_RES, :piFONE_COM,
        :piFONE_CEL, :piFONE_FAX, :piLOGRADOURO, :piNUMERO, :piCOMPL,
:piBAIRRO,
        :piCEP, :piCIDADE, :piUF, :piEMAIL,  :piDATA_NASC, :piANOS,
:piMESES, :piDIAS, :piPRONTUARIO);

end

Maciel






--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.4/109 - Release Date: 21/9/2005





Mais detalhes sobre a lista de discussão lista