SP não reconhecida
Boa tarde pessoal, to com um probleminha aqui no firebird, versão 2.0.
Eu fiz uma SP pra ´ajeitar´ o formato das strings do banco, só que quando chamo ela pra fazer a view da erro.
Esse eh o codigo da SP
E esse é o código da view:
esse é o erro que dá:
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
LENGTH_TEXTO.
Se alguém puder me ajudar, to realmente precisando.
Muito obrigado desde já. Abraço
Eu fiz uma SP pra ´ajeitar´ o formato das strings do banco, só que quando chamo ela pra fazer a view da erro.
Esse eh o codigo da SP
CREATE OR ALTER PROCEDURE LENGTH_TEXTO ( tam_string integer, texto varchar(255)) returns ( texto_formatado varchar(255)) as declare variable diferenca integer; declare variable qtd_char integer; begin qtd_char = fblength(texto); diferenca = tam_string - qtd_char; texto_formatado = texto; while (diferenca > 0) do begin texto_formatado = texto_formatado || ´ ´; diferenca = diferenca - 1; end texto_formatado = texto_formatado; --|| texto; suspend; end
E esse é o código da view:
CREATE VIEW Empresa( empresa_nome) AS select length_texto(50, empresa_nome) from TEmpresas;
esse é o erro que dá:
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
LENGTH_TEXTO.
Se alguém puder me ajudar, to realmente precisando.
Muito obrigado desde já. Abraço
Amaury Sette
Curtidas 0
Respostas
Webjoel
19/06/2009
Olá!
Creio que o problema esteja acontendo na função: ´fblength´, ela não deve existir na sua base, o firebird tem uma função nativa para retornar o tamanhop de uma string, é: ´char_length´.
Faça essa modificação e tente novamente.
Ah, e já existe uma função que faz exatamente isso que a função que você criou faz, e ainda por cima faz ao inverso e também deixa você colocar qual caracter você deseja completar a string. É só você colocar a UDF: ´FreeAdhocUDF´, e chamar a função: ´F_PADLEFT´.
Boa sorte!
Creio que o problema esteja acontendo na função: ´fblength´, ela não deve existir na sua base, o firebird tem uma função nativa para retornar o tamanhop de uma string, é: ´char_length´.
Faça essa modificação e tente novamente.
Ah, e já existe uma função que faz exatamente isso que a função que você criou faz, e ainda por cima faz ao inverso e também deixa você colocar qual caracter você deseja completar a string. É só você colocar a UDF: ´FreeAdhocUDF´, e chamar a função: ´F_PADLEFT´.
Boa sorte!
GOSTEI 0
Amaury Sette
19/06/2009
Joel, a fblenght é uma UDF que ta na base sim, mas eu resolvi o problema, fiz tudo no codigo do sistema mesmo, valeu pela força. Agora sabendo dessa função vou fazer tudo no banco novamente, pois ganho em desempenho do sistema.
Valeu a força. Forte abraço.
Valeu a força. Forte abraço.
GOSTEI 0