Quien soy? RSS feed Enviar por email Imprimir Parar este menu Ir arriba
Blogzote.com
Mexico, informatica, internet, musica y algo mas…
Pagina 11 de 24« Primera...10111213...Ultima »

Tablas externas en Oracle

Un requerimiento en mi pasado proyecto, consistía en que el usuario pudiera cargar en el momento que desee un archivo proveniente de Excel (que serían los usuarios sin Excel), se procesara la información con datos complementarios y le fuera devuelta en otro archivo que pudiera manejar también en Excel.

Para la carga inicial del archivo contaba con varias opciones, al sistema estar desarrollado en Oracle Developer 6i, igual se puede generar un nuevo modulo y mediante TEXT_IO manejar la información del archivo, al ser una carga de información se podría usar SQL*Loader, también podría haberse usado UTL_FILE para leer y cargar el archivo a la base o la que finalmente el cliente acabo aceptando por su facilidad de uso y mantenimiento, las tablas externas.

En la practica una tabla externa no es mas que un archivo plano con cierto layout predefinido en el cual los campos están separados por algún carácter como una coma, comillas, o tabuladores, muy parecido al que se usaría para hacer una carga desde SQL*Loader, Que es declarado en Oracle y que puede ser manejado directamente como cualquier otro objeto de la base de datos, pero a fin de cuentas es un archivo en el sistema operativo, con algunas limitantes, como no poder realizar inserts, deletes, updates sobre el objeto, no se pueden generar indices y su tamaño máximo es de 2GB, veamos ahora como crearlo:

  • Previamente se crea un directorio donde vivirá el mencionado archivo plano, (la ruta depende de nuestro servidor):
    1
    
    CREATE OR REPLACE DIRECTORY EXTERNAL_TABLES AS '/usr/files/external/';
  • Le damos privilegios a determinado usuario para leer y escribir en este directorio:
    1
    
    GRANT READ, WRITE ON DIRECTORY EXTERNAL_TABLES TO USUARIO;
  • En el directorio físico del servidor copiamos el archivo que contendrá los datos llamado “tabla_externa.txt”, para este ejemplo usaremos datos como los que siguen (¿creo que es evidente que son de prueba verdad?):
    1
    2
    3
    4
    5
    
    1,00001,551122334455,11111111111
    2,00002,551122334466,22222222222
    3,00003,551122334477,33333333333
    4,00004,551122334488,44444444444
    5,00005,551122334499,55555555555
  • Ahora creamos la tabla externa:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    CREATE TABLE tabla_externa (
      CLI_ID         VARCHAR2(50),
      CONTRATO       VARCHAR2(50),
      TELEFONO       VARCHAR2(50),
      NO_SERIE       VARCHAR2(50)
    )
    ORGANIZATION EXTERNAL (
      TYPE oracle_loader 
      DEFAULT directory EXTERNAL_TABLES
      access parameters
    ( records delimited BY newline
      skip 1
      badfile 'tabla_externa.bad'
      logfile 'tabla_externa.log'
      fields terminated BY ','
      missing field VALUES are NULL
    )
    location ('tabla_externa.txt')
    )
    reject limit unlimited;

Listo, a partir de este momento tenemos acceso a los datos dentro de cualquier consulta normal, solo unas observaciones adicionales:

Si el archivo que deseas mostrar contiene muchos, muchos datos, igual y te conviene mejor usar SQL*Loader para previamente cargar tus datos a Oracle ya que los tiempos para consultas a estas tablas con bastante mas grandes que los tiempos de una tabla normal, esto debido a que no se pueden crear indices sobre la tabla externa o, en su defecto, usar una segunda tabla, que sea llenada con la información de la externa con un simple “insert as select” la cual tenga sus debidos indices.

Para no perder la facilidad en el acceso a la información ganado con la tabla externa por algún error “de dedo”, esta fue creada especificando varchar2(50) para sus campos, aunque en realidad se espera en esas columnas valores numéricos y de mucha menos extensión, por ejemplo para el cli_id se espera un numérico de 10 caracteres, pero declararlo así no me regresaría por ejemplo un valor que tuviera un carácter, preferí dejarlo como varchar2 y manejar esto mediante la consulta que extrae los datos, en este caso, limpiando la cadena de caracteres no numéricos, esto claro depende de la calidad esperada de la información, si se espera una información de calidad igual y conviene declarar los tipos de acuerdo a su valor esperado, en mi caso esto no fue así.

* 16 Comentarios Email Imprimir
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Valorar)
Loading ... Loading ...

is_numeric en Oracle

Esta esta muy facilita, resulta que necesitaba saber si una cadena, proveniente de un archivo contenía solo datos numéricos o alfanuméricos, en Oracle no existe una función para saberlo ( al menos no la conozco ), buscandole un poquito en la red no tarde mucho en encontrar la solución, la dejo aquí:

1
2
3
4
5
6
7
8
9
CREATE OR REPLACE FUNCTION is_numeric (p_num IN VARCHAR2)
  RETURN BOOLEAN IS
  x NUMBER;
BEGIN
  x := TO_NUMBER (p_num);
  RETURN TRUE;
EXCEPTION WHEN OTHERS THEN 
  RETURN FALSE;
END;
* 2 Comentarios Email Imprimir
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Valorar)
Loading ... Loading ...

Niño loco aleman

Buenisimo, hoy me encuentro un video en youtube que anda dando mucho de que hablar, un niño alemán que histericamente trata de que su juego funcione, ya después crearon versiones alternas con diferentes diálogos, algunas también muy buenas, supongo que se trata de una actuación, por que si no, ese niño necesita urgentemente un psicólogo o algo así:

Sin comentarios Email Imprimir
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Valorar)
Loading ... Loading ...

Mi experiencia con Paypal

Mucha gente que desea comprar en mis tiendas virtuales me pregunta sobre la posibilidad de pagar con tarjeta de crédito (método de pago muy usado en las ventas por Internet), mas aun sobre poder diferir sus pagos a x cantidad de meses, a todos ellos siempre les tengo que contestar “lo siento, por el momento no ofrecemos este método de pago”, con las consecuentes perdidas de ventas por la falta de este método, pero ¿Por que no dispongo de este método de pago?

Cuando empezaba con la puesta en linea de la tiendas, empece a buscar alternativas para ofrecer el pago con tarjeta de crédito en linea, sin duda la primera opción y casi lógica fueron los bancos, pedí informes a varios de ellos pero sus respuestas en general coincidían en varias cosas, pagar un importe mensual por el uso, pagar un importe por ingreso, mantener determinado volumen de ventas, carta constitutiva de la empresa, incluso algunos hablaron del pago de una fianza, y algunos otros requisitos, imposibles de costear por mi.

Al buscar otras opciones, me encontré con una alternativa, las llamadas pasarelas de pago, después de ver los pros y contras de cada una así como revisar los comentarios expresados en foros, blogs, etc. Requisitos, requerimientos, decidí que la mas viable era paypal, entre los beneficios están que no cobran por ingresar al sistema, algunos otros métodos como 2checkout te cobran un monto por el simple hecho de entrar, en México te transfieren el monto de tus ventas directamente a tu cuenta bancaria, puedes pedir la transferencia en cualquier momento, otros métodos te ofrecen transferirte cada determinado periodo de tiempo, cobran alrededor del 5% extra del monto pagado, algunos otros cobran un porcentaje mas alto, y por supuesto la reputación que tiene la empresa, muchos la conocen incluso ya la usan, a nivel técnico tampoco me daría muchos problemas, ya estaba desarrollada la interfase para oscommerce, solo necesitaba instalarla.

Al principio todo marchaba viento en popa, la pasarela trabaja de una forma muy sencilla, al seleccionar este método de pago el cliente es redirigido a la pasarela de pago de paypal, con ellos el cliente inserta sus datos incluyendo los de su tarjeta de crédito, ellos se encargan de validar todos esos datos y si son correctos la pasarela te regresa a la pagina de confirmación exitosa del pedido (No entrare en detalles técnicos al respecto), aquí una imagen que muestra este flujo:

flujo de pago paypal

Todo bien hasta que un día, para mi sorpresa, recibo un email al querer transferir los fondos de paypal a mi cuenta bancaria:

Dear enrique acevedo,

From time to time, a buyer who is not satisfied with merchandise they paid for with a credit card through PayPal may file a chargeback with their credit card company. We were recently notified that one of your buyers filed a chargeback against a transaction with you.

As you may know, under certain circumstances credit card companies may hold sellers liable for chargebacks unless they can prove they sufficiently fulfilled the terms of the order. PayPal understands that chargebacks can be frustrating and we’re here to help you work through this situation. With your cooperation, we will assist you in disputing this chargeback.

If you’re not familiar with chargebacks, please visit our Resolution Center and click the Learn about Chargebacks link.

In their chargeback claim, the buyer indicated that the purchase represented possible unauthorized credit card use.

PayPal is investigating the buyer’s claim and may dispute the chargeback with the buyer’s credit card company. Please help us resolve this case as soon as possible by reviewing the Transaction Details and the What To Do Next sections described below.

Because the owner of the account has initiated a chargeback, we have placed a temporary hold on the funds associated with this transaction until this case is resolved. This action was taken in accordance with the terms of the PayPal User Agreement.

¿Quuueeeeeeeeee? Como puede ser posible, si todos los pedidos los envío o en caso contrarío devuelvo el dinero sin mayor problema, de todos los pagos que recibí con tarjeta todos los equipos fueron surtidos sin problemas, en la sección de disputas de paypal te dan acceso al detalle de la transacción que esta en disputa, esa transacción representa el pago de un equipo que mande como dos meses atrás sin mayor problema, y lo peor de todo es que congelan tu cuenta, es decir, no puedes sacar un peso de ella (inmediatamente quite esta opción de pago de mis sitios)

Algunos emails posteriores me advertían de lo que seguía, de que podrían pasar meses para resolver este problema, que ellos cuentan con un departamento especializado para resolver estos problemas, que tanto no se resolviera esto no podría mover un peso de mi cuenta, etc. En emails posteriores me pidieron que mandara toda la documentación con la que comprobara que el producto fue enviado, misma que tenia sin mayor problema, les remití la factura del equipo, la hoja verde de garantía, la impresión de la guía de estafeta, mi identificación, los emails que intercambie con el “cliente” en los que confirma la entrega del paquete.

Paso alrededor de un mes en el cual no recibía respuesta, hasta que me llega un email:

Dear enrique acevedo,

We recently notified you that one of your buyers filed a chargeback with their credit card company indicating unauthorized credit card use.

It is PayPal’s standard practice to attempt to dispute wrongful chargebacks. After careful consideration of the information provided by you and the buyer regarding the transaction detailed below, we have determined that we will be unable to successfully dispute this chargeback with the buyer’s credit card issuer.

Since the credit card issuer granted the chargeback to the buyer, we have debited $XXX USD from your PayPal account in order to reimburse the buyer. This is in accordance with the terms of the PayPal User Agreement.

Also, PayPal was charged a settlement fee. As a result we debited your PayPal account to pay for this fee. This action was taken in accordance with the terms of the PayPal User Agreement.

Please review the transaction information below and other details about this case.

No recibí ninguna respuesta ni comentario respecto a la documentación que mande, yo pensaba que era mas que suficiente para comprobar que ese equipo fue enviado y recibido por el “cliente” pero no, simplemente no sirvió de nada esa documentación y no fueron para responder aclarando el tema, todo lo manejaron con emails automáticos como los mostrados y al final resolvieron a favor del “cliente”.

Recibí en los meses posteriores mas emails de paypal diciendo que mi cuenta estaba en negativo, debido al importe debitado, que añadiera fondos a la cuenta para resolver eso, fondos que nunca cargue y desde ese momento no acepte mas paypal ni tarjetas de crédito.

Ahora estoy en espera de Google Checkout que por el momento solo esta disponible en USA y promete ser una opción mucho mas fuerte y segura que paypal, con muchas mas opciones y totalmente integrada a los servicios que ya ofrece ( y ofrecerá ) Google, sin duda promete ser la mejor oferta de pasarelas de pago en linea.

* 5 Comentarios Email Imprimir
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Valorar)
Loading ... Loading ...

Zona roja online

Hoy leyendo las noticias del día me topo con una muy interesante, referente a la iniciativa para crear una zona roja en la red, o sea, un espacio libre para la expresión de pornografía, erotismo, sexualidad, etc. En un punto en especifico, aquí la noticia:

La agencia reguladora de Internet ha revisado la propuesta de crear una “zona roja” online, a través de un dominio identificado con .xxx. La implementación se llevaría a cabo después de que se agreguen regulaciones más rígidas para prohibir la pornografía infantil y se clasifiquen las páginas de contenido sexual.

El uso de la nomenclatura permanecería voluntario, pero cualquier sitio de estas características que siga usando .com estaría sujeto a los nuevos cánones emitidos por la ICANN. Esta propuesta generó una oposición considerable de grupos conservadores e incluso de algunos sitios pornográficos en la red.

Por su parte, los funcionarios del ICANN dijeron que inicialmente había rechazo la propuesta en el mes de mayo del año pasado, no por esta oposición, sino por temor de que la agencia quede en una posición difícil de tener que aplicar todas las leyes del mundo que regulan este género. Además, marcaron que las leyes de libertad de expresión de varios países están en conflicto con las de otros.

Esta nueva revisión no tiene en forma directa conflictos potenciales con leyes vigentes, pero requiere que la compañía que la respalda, ICM Registry, contrate organizaciones para monitorear los sitios en consecuencia de las nuevas disposiciones.

La agencia designada por el gobierno de Estados Unidos, se mostró abierta a recibir comentarios del público en torno a la propuesta, pero no anunció cuándo dará su dictamen. Si llega a aprobarla, se requerirá que ICM ayude a desarrollar técnicas para velar por la seguridad de los infantes.

¿Pero que se persigue con esto? Si las paginas con contenido para adultos abundan por Internet y no necesitaron de una zona “especial” para ello, el sexo es lo que mas se busca, lo que mas vende ( no muy diferente a otros medios como la televisión o el impreso )

Como punto complementario, me recuerda un detalle que muestra la pagina principal de Google Sitemaps, donde una imagen de muestra alcanza a dejar ver las cuatro principales palabras buscadas en Google España, en este orden: “traductor”, “google”, “putas”, “culos” y los clics mas habituales en los resultados son, en este orden: “putas”, “google”,”culos”,”tetas”

estadisticas google españa

Sin duda lo que se persigue por una lado es el control de este tipo de sitios y por otro, gracias a este mismo control, la disminución de la pornografía infantil, bueno o malo depende de que lado estés, si eres el dueño de una pagina de este tipo igual te conviene por que los clientes sabrán donde encontrarte mas fácilmente, malo por que pensar en una migración de tu sitio a otro dominio significa perdida de visitantes, perdida de enlaces, perdida de posiciones en los buscadores, si eres usuario de la red, bueno por que no te vas a tener que topar con paginas pornográficas cuando estés buscando términos que nada tienen que ver con ella, por que será mas fácil un control de contenido inapropiado para menores, en fin, solo es cuestión de enfoques.

Sin comentarios Email Imprimir
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Valorar)
Loading ... Loading ...

Pagina 11 de 24« Primera...10111213...Ultima »