Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

funcion string_to_array de postgres en MYSQL?

Estas en el tema de funcion string_to_array de postgres en MYSQL? en el foro de Mysql en Foros del Web. Estimados colegas He buscado en montones de partes si existe la funcion Código: string_to_array de postgres o alguna funcion semejante en MYSQL para transformar strings ...
  #1 (permalink)  
Antiguo 07/11/2009, 08:39
 
Fecha de Ingreso: enero-2009
Ubicación: talca
Mensajes: 23
Antigüedad: 15 años, 3 meses
Puntos: 0
Busqueda funcion string_to_array de postgres en MYSQL?

Estimados colegas

He buscado en montones de partes si existe la funcion
Código:
 string_to_array
de postgres o alguna funcion semejante en MYSQL para transformar strings en arrays dentro de los procedimientos almacenados, pero no he encontrado nada
bueno para mejor entendimiento la funcion
Código:
string_to_array
en postgres permite transformar una cadena de texto en un arreglo, es como un split en java en donde se elije un caracter que delimita y divide el texto
ojala me puedan ayudar con esto desde ya muchas grasias
  #2 (permalink)  
Antiguo 07/11/2009, 08:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: funcion string_to_array de postgres en MYSQL?

en mysql no existe fidokelele

Mysql no maneja los arrays como tipos de datos.

saluds
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 07/11/2009, 09:13
 
Fecha de Ingreso: enero-2009
Ubicación: talca
Mensajes: 23
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: funcion string_to_array de postgres en MYSQL?

no puede ser
algo debe existir entonces para realizar multiples insert con los valores contenidos en una variable tipo texto

como puedo hacer esto de postgres:

Cita:


CREATE OR REPLACE FUNCTION "public"."ingresar_traslado" (in_origen integer, in_destino integer, in_detalle text, in_rut text, in_estados text, in_estado boolean) RETURNS record AS
$body$
DECLARE
arreglo_detalle INTEGER [];
arreglo_estado INTEGER[];

ultimo_id INTEGER;
primer_id INTEGER;
valor_maximo INTEGER;
BEGIN
arreglo_detalle:= string_to_array(in_detalle,',');
arreglo_estado:= string_to_array(in_estados,',');

primer_id:=array_lower(arreglo_detalle,1);
ultimo_id:=array_upper(arreglo_detalle,1);

INSERT into activotraslado (origen,destino,rutfuncionario,estado,fechaenvio)V ALUES(in_origen,in_destino,in_rut,in_estado,now()) ;

valor_maximo= (SELECT max(idtraslado) FROM activotraslado);



WHILE primer_id<=ultimo_id LOOP

INSERT INTO trasladodetalle(iditemactivoserie, estadoenvio,idtraslado,recibido )VALUES(arreglo_detalle[primer_id],arreglo_estado[primer_id],valor_maximo,'f');

UPDATE itemactivoserie SET idlugar = in_destino WHERE iditemactivoserie = arreglo_detalle[primer_id];

primer_id:=primer_id+1;
END LOOP;
RETURN NULL;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY INVOKER;


en MYSQL ?
  #4 (permalink)  
Antiguo 07/11/2009, 09:18
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: funcion string_to_array de postgres en MYSQL?

yo crearía una tabla temporal que me almacene en los valores separados.
recorrería el text con la función substring, locate y length para determinar donde hay una coma y pasar esa parte de la cadena como un registro.

es una lastima que mysql no soporte arrays... realmente son muy utiles.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 07/11/2009, 09:33
 
Fecha de Ingreso: enero-2009
Ubicación: talca
Mensajes: 23
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: funcion string_to_array de postgres en MYSQL?

si es lamentable estube viendo mas detenidamente y creo que con substring y unas cuantas funciones bastara para trabajar con la cadena la idea es dividirla por medio de las comas determinando su posicion dentro de un WHILE y asignarlas a una variable y luego hacer el insert con el trozo de cadena que deseo
  #6 (permalink)  
Antiguo 07/11/2009, 09:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: funcion string_to_array de postgres en MYSQL?

Existen tres formas básicas para hacer carga masiva de datos:
1) Hacer un insert múltiple en la aplicación (muy eficiente), del tipo
Código:
INSERT INTO tabla
VALUES (a, b, c), (a1, b1, c1), (a2, b2, c2),...;
2) Usando LOAD DATA INFILE, que requiere de un archivo plano, que lo único esencial es que tenga los datos bien formateados conforme los tipos de campo de la tabla destino.
3) Usando INSERT INTO ... SELECT ..., donde la consulta origen bien puede ser una subconsulta de alta complejidad (súmamente eficiente).

Sobre LOAD DATA ver MySQL con Clase
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.