Me da este error cuando quiero traer el dato bit de un dato en el property bag la pantalla pone true al salvar, pero el al quererlo leer con la sentencia gen.get_pb_field_data_bit da este error

ORA-01722: número no válido 01722. 00000 - "invalid number" Cause:
Action:

y cuando lo corro con gen.get_pb_field_data no me da error y sale el valor true

dato dato dato dato dato dato dato dato dato

---- ---- ---- ---- ---- ----- ----- ---- ----

8278 235 1 12 Dias true 30 0 0

en cambio si pongo manualmente 1 o 0 en el dato del property bag ahí no me da error, pero la pantalla guarda true/false no 1/0.

asked 26 Feb '15, 20:22

Jaime%20Menjivar's gravatar image

Jaime Menjivar
(suspended)
accept rate: 16%


Este es el cuerpo de la función en el paquete GEN.

FUNCTION get_pb_field_data_bit (xmlField CLOB, campo VARCHAR2)
   RETURN NUMBER
AS
   res   NUMBER (1);
BEGIN
   res :=
      CASE
         WHEN gen.get_pb_field_data (xmlField, campo) = 'true' THEN 1
         ELSE 0
      END;
   RETURN res;
END;

Si te das cuenta obtiene el dato con la función que retorna VARCHAR y lo compara contra 'true', para retornar 1 o 0, que si entiende la variable NUMBER(1) de Oracle.

Ya lo probé en la base de desarrollo y no falla.

Deberías de revisar la función en el paquete y tus datos en la tabla.

link

answered 26 Feb '15, 21:31

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Si esta diferente porque según los datos de la carga puede ser true, 1 o S o false, 0 o N, y las pantallas los agarran.

FUNCTION get_pb_field_data_bit (xmlField CLOB, campo VARCHAR2)
  RETURN NUMBER AS
  res   NUMBER (1); BEGIN
  res :=
     CASE
        WHEN (gen.get_pb_field_data (xmlField, campo) = 'true') or
             (gen.get_pb_field_data (xmlField, campo) = '1') or 
             (gen.get_pb_field_data (xmlField, campo) = 'S') 
             THEN 1
        ELSE 0
     END;

  RETURN res; END;
link

answered 26 Feb '15, 23:40

Jaime%20Menjivar's gravatar image

Jaime Menjivar
(suspended)
accept rate: 16%

Ya encontré el problema es como lo estoy usando,

nvl(EVODATA.gen.get_pb_field_data_bit (EMP_PROPERTY_BAG_DATA, 'SalarioPorHora'),'false')

y debe ser

nvl(EVODATA.gen.get_pb_field_data_bit (EMP_PROPERTY_BAG_DATA, 'SalarioPorHora'),0)

link

answered 27 Feb '15, 00:13

Jaime%20Menjivar's gravatar image

Jaime Menjivar
(suspended)
accept rate: 16%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×34
×15

Asked: 26 Feb '15, 20:22

Seen: 3,768 times

Last updated: 27 Feb '15, 00:13

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática