Constancia

SQL_PROC_SYS_TABLA_FICHERO_FMT

Jan 22nd, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.73 KB | None | 0 0
  1. -- SELECT * FROM syscolumns WHERE ID = 738101670
  2. --EXEC SYS_TABLA_FICHERO_FMT 'A_MIDAS_COMPLEJOS_PEDIDOS'
  3.  
  4. CREATE PROCEDURE PROC_SYS_TABLA_FICHERO_FMT
  5.  
  6.  @TABLA VARCHAR(100)
  7.  
  8. AS
  9.  
  10. DECLARE @nColumnas INT
  11. DECLARE @iCOLUMNA INT
  12. DECLARE @ID_TABLA INT
  13. --DECLARE @TABLA CHAR(200)
  14. DECLARE @VERSION CHAR(5)
  15. DECLARE @sFILA VARCHAR(500)
  16. DECLARE @SEPARADOR CHAR(5)
  17. -- *********** VARIABLES PARA LOS CAMPOS DE LA TABLA
  18. DECLARE @CAMPO CHAR(150)
  19. DECLARE @LONGITUD INT
  20.  
  21. SELECT @VERSION = '8.0'
  22. --SELECT @TABLA = 'A_MIDAS_COMPLEJOS_PEDIDOS'
  23.  
  24. SELECT @ID_TABLA = id FROM sysobjects WHERE name = @TABLA
  25. SELECT @nColumnas = COUNT(*) FROM SysColumns WHERE id = @ID_TABLA
  26.  
  27. --PRINT @ID_TABLA
  28. PRINT @VERSION
  29. PRINT @nColumnas
  30.  
  31.  
  32. -- ******************** CURSOR PARA RECORRER LOS CAMPOS
  33.  
  34. DECLARE RS CURSOR
  35. FOR SELECT Name,LENGTH FROM SysColumns WHERE ID = @ID_TABLA
  36. OPEN RS
  37.  
  38. SELECT @iCOLUMNA = 1
  39.  
  40. FETCH NEXT FROM RS
  41. INTO @CAMPO,@LONGITUD;
  42.  
  43. WHILE @@FETCH_STATUS = 0
  44. BEGIN
  45.  
  46.     IF @iCOLUMNA = @nColumnas SELECT @SEPARADOR = '"\n"' ELSE SELECT @SEPARADOR = '"\t"'
  47.  
  48.     SELECT @sFILA = LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
  49.     SELECT @sFILA = @sFILA + 'SQLCHAR' + CHAR(9)
  50.     SELECT @sFILA = @sFILA + '0' + CHAR(9)
  51.     SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@LONGITUD))) + CHAR(9)
  52.     SELECT @sFILA = @sFILA + @SEPARADOR + CHAR(9)
  53.     SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
  54.     SELECT @sFILA = @sFILA + LTRIM(RTRIM(@CAMPO)) + CHAR(9)
  55.     SELECT @sFILA = @sFILA + 'Modern_Spanish_CI_AS'
  56.  
  57.     PRINT @sFILA
  58.  
  59.     --PRINT CONVERT(CHAR,@iCOLUMNA) + CHAR(9) + 'SQLCHAR'   0   50  "\t"    1   CODIGO  Modern_Spanish_CI_AS
  60.  
  61.     SELECT @iCOLUMNA = @iCOLUMNA + 1
  62.  
  63.  
  64. FETCH NEXT FROM RS
  65. INTO @CAMPO,@LONGITUD;
  66.  
  67. END
  68. CLOSE RS;
  69. DEALLOCATE RS;
Advertisement
Add Comment
Please, Sign In to add comment