Constancia icon

SQL_PROC_SYS_TABLA_FICHERO_FMT

Constancia | PRO | 01/22/14 06:41:16 AM UTC | 0 ⭐ | 221 👁️ | Never ⏰ | []
PL/SQL |

1.73 KB

|

None

|

0 👍

/

0 👎

-- SELECT * FROM syscolumns WHERE ID = 738101670 
--EXEC SYS_TABLA_FICHERO_FMT 'A_MIDAS_COMPLEJOS_PEDIDOS'
 
CREATE PROCEDURE PROC_SYS_TABLA_FICHERO_FMT
 
 @TABLA VARCHAR(100)
 
AS
 
DECLARE @nColumnas INT
DECLARE @iCOLUMNA INT
DECLARE @ID_TABLA INT
--DECLARE @TABLA CHAR(200)
DECLARE @VERSION CHAR(5)
DECLARE @sFILA VARCHAR(500)
DECLARE @SEPARADOR CHAR(5)
-- *********** VARIABLES PARA LOS CAMPOS DE LA TABLA
DECLARE @CAMPO CHAR(150)
DECLARE @LONGITUD INT
 
SELECT @VERSION = '8.0'
--SELECT @TABLA = 'A_MIDAS_COMPLEJOS_PEDIDOS'
 
SELECT @ID_TABLA = id FROM sysobjects WHERE name = @TABLA
SELECT @nColumnas = COUNT(*) FROM SysColumns WHERE id = @ID_TABLA
 
--PRINT @ID_TABLA
PRINT @VERSION
PRINT @nColumnas
 
 
-- ******************** CURSOR PARA RECORRER LOS CAMPOS
 
DECLARE RS CURSOR
FOR SELECT Name,LENGTH FROM SysColumns WHERE ID = @ID_TABLA
OPEN RS
 
SELECT @iCOLUMNA = 1
 
FETCH NEXT FROM RS
INTO @CAMPO,@LONGITUD;
 
WHILE @@FETCH_STATUS = 0
BEGIN
 
    IF @iCOLUMNA = @nColumnas SELECT @SEPARADOR = '"\n"' ELSE SELECT @SEPARADOR = '"\t"'
 
    SELECT @sFILA = LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
    SELECT @sFILA = @sFILA + 'SQLCHAR' + CHAR(9)
    SELECT @sFILA = @sFILA + '0' + CHAR(9)
    SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@LONGITUD))) + CHAR(9)
    SELECT @sFILA = @sFILA + @SEPARADOR + CHAR(9)
    SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
    SELECT @sFILA = @sFILA + LTRIM(RTRIM(@CAMPO)) + CHAR(9)
    SELECT @sFILA = @sFILA + 'Modern_Spanish_CI_AS'
 
    PRINT @sFILA
 
    --PRINT CONVERT(CHAR,@iCOLUMNA) + CHAR(9) + 'SQLCHAR'   0   50  "\t"    1   CODIGO  Modern_Spanish_CI_AS
 
    SELECT @iCOLUMNA = @iCOLUMNA + 1
 
 
FETCH NEXT FROM RS
INTO @CAMPO,@LONGITUD;
 
END
CLOSE RS;
DEALLOCATE RS;

Comments