SQL Server - Funcion Sql server a mysql

   
Vista:

Funcion Sql server a mysql

Publicado por Pedro (9 intervenciones) el 28/01/2013 22:03:34
Hola, tengo un problema, estaba desarrollando una pagina PHP con sql server, pero debido al costo de la licencia, me he visto obligado a migrar la data a mysql, sin embargo uso funciones sql que necesito pasar a mysql, sin embargo no se como hacerlo. He visto en la web ejemplos bastantes simples que no me ayudaron y por eso les consulto a Uds. La funcion en cuestions es

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
CREATE FUNCTION [dbo].[fneAnexo_Estado]
	(@IdAnexo int)
 
RETURNS NVarChar(200)
AS
begin
 
		DECLARE @EsCreditoCerrado Bit
		DECLARE @FechaCerrado NVarChar(10)
		DECLARE @ObservacionEstadoCredito NVarChar(200)
		DECLARE @NomMotivoBloqueo NVarChar(200)
		DECLARE @FechaMotivoBloqueo NVarChar(10)
		DECLARE @EsBloqueado Bit
		DECLARE @EsMoroso Bit
		DECLARE @EsBloqueoConstancia Bit
		DECLARE @MensajeError NVarChar(200)
 
		SELECT     @EsCreditoCerrado = EsCreditoCerrado, @EsBloqueado = EsBloqueado, @EsMoroso = EsMoroso, @EsBloqueoConstancia = EsBloqueoConstancia,
		                      @ObservacionEstadoCredito = CAST(CASE WHEN ObservacionEstadoCredito IS NULL OR
		                      ObservacionEstadoCredito = '' THEN MotivoEstadoCredito.NomMotivoEstadoCredito ELSE ObservacionEstadoCredito END AS nvarchar(150)),
		                      @NomMotivoBloqueo = CAST(NomMotivoBloqueo AS NVARCHAR(50)), @FechaMotivoBloqueo = CONVERT(NVARCHAR, FechaMotivoBloqueo, 103),
		                      @FechaCerrado = CONVERT(NVARCHAR, Anexo.FechaCreditoCerrado, 103)
		FROM         Anexo(NOLOCK)  INNER JOIN
		                      MotivoEstadoCredito(NOLOCK)  ON Anexo.IdMotivoEstadoCredito = MotivoEstadoCredito.IdMotivoEstadoCredito
		WHERE     (Anexo.IdAnexo = @IdAnexo)
			BEGIN
			IF  @EsMoroso <>0
			BEGIN
					SET @MensajeError='MOROSO'
 
 
			END
			ELSE
			BEGIN
				IF @EsCreditoCerrado <> 0
					BEGIN
						SET @MensajeError='CREDITO CERRADO '+ @FechaCerrado +' '+cast( @ObservacionEstadoCredito as nvarchar(150))
 
					END
				ELSE
					BEGIN
						IF @EsBloqueado <> 0
							BEGIN
								SET @MensajeError=@NomMotivoBloqueo +' '  + @FechaMotivoBloqueo
 
							END
						ELSE
						BEGIN
							IF @EsBloqueoConstancia  <> 0
								BEGIN
									SET @MensajeError='BLOQUEO '+ @NomMotivoBloqueo   +' '  + @FechaMotivoBloqueo
 
								END
						END
				END
			END
			END
 
	RETURN @MensajeError
 
	END



PD: es un monstruo como ven, por favor necesito su ayuda. Agradezco su respuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Funcion Sql server a mysql

Publicado por Isaias (3180 intervenciones) el 30/01/2013 18:02:05
Creo que deberías colocar tu pregunta o duda en el grupo de MYSQL, es como si yo fuera a PEPSI-COLA y pidiera que me dieran una Coca-Cola, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Funcion Sql server a mysql

Publicado por Pedro pedro_priore@yahoo.com.ar (80 intervenciones) el 14/03/2013 22:30:51
Hola, recien veo tu inconveniente,
En concreto cual es la pregunta?

Porque la programacion de mysql cambia un poco de la de mssql,

NO existe el @
Los IF van con Then Else y End if
Toda linea de programacion como unidad independiente tiene que terminar si o si en ;
Los cursores se manejan totalmente distinto y se controlan distintos tambien.
La asignacion de variables desde un select es distinta
La concatenacion es distinta.

Y por lo que veo en tu Fn no parece muy problematico pasarlo, no tiene cosas raras

Sdos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar