[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