J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter
un répertoire.
Pour exemple, cela est possible en VB avec Dir(C:\*.*). L'équivalent est il
possible sous SQL Server ? Le but étant de retourner tous les noms de
fichiers présents dans un répertoire dans une boucle.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter
un répertoire.
Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il
possible sous SQL Server ? Le but étant de retourner tous les noms de
fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Merci pour cette information, cependant je connaissais cette proc stockée.
Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire
comment je peux récupérer séquentiellement les noms de fichiers listés dans
une variable ?
D'avance merci !
Laurent
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
eaK%23DZE2GHA.4264@TK2MSFTNGP05.phx.gbl...
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL,
scruter un répertoire.
Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est
il possible sous SQL Server ? Le but étant de retourner tous les noms de
fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Fred BROUARD
Un petit exemple :
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES (L VARCHAR(296))
INSERT INTO #T_LIGNES EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES WHERE SUBSTRING(L, 1, 1) = ' ' OR L IS NULL
CREATE TABLE T_FILES_FLS ( FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY, FLS_NAME VARCHAR(256) NOT NULL, FLS_DH DATETIME NOT NULL, FLS_SIZE INTEGER, FLS_DIR BIT NOT NULL DEFAULT 0 )
-- attention : dépend des paramètres régionaux SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS SELECT SUBSTRING(L, 40, 256), CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME), CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER) END, CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1 ELSE 0 END FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT * FROM T_FILES_FLS WHERE FLS_DIR = 0
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Un petit exemple :
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES
(L VARCHAR(296))
INSERT INTO #T_LIGNES
EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES
WHERE SUBSTRING(L, 1, 1) = ' '
OR L IS NULL
CREATE TABLE T_FILES_FLS
(
FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
FLS_NAME VARCHAR(256) NOT NULL,
FLS_DH DATETIME NOT NULL,
FLS_SIZE INTEGER,
FLS_DIR BIT NOT NULL DEFAULT 0
)
-- attention : dépend des paramètres régionaux
SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS
SELECT SUBSTRING(L, 40, 256),
CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME),
CASE
WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL
ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER)
END,
CASE
WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1
ELSE 0
END
FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT *
FROM T_FILES_FLS
WHERE FLS_DIR = 0
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc stockée.
Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire
comment je peux récupérer séquentiellement les noms de fichiers listés dans
une variable ?
D'avance merci !
Laurent
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
eaK%23DZE2GHA.4264@TK2MSFTNGP05.phx.gbl...
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL,
scruter un répertoire.
Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est
il possible sous SQL Server ? Le but étant de retourner tous les noms de
fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES (L VARCHAR(296))
INSERT INTO #T_LIGNES EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES WHERE SUBSTRING(L, 1, 1) = ' ' OR L IS NULL
CREATE TABLE T_FILES_FLS ( FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY, FLS_NAME VARCHAR(256) NOT NULL, FLS_DH DATETIME NOT NULL, FLS_SIZE INTEGER, FLS_DIR BIT NOT NULL DEFAULT 0 )
-- attention : dépend des paramètres régionaux SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS SELECT SUBSTRING(L, 40, 256), CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME), CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER) END, CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1 ELSE 0 END FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT * FROM T_FILES_FLS WHERE FLS_DIR = 0
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM
Merci beaucoup pour cette aide !
Laurent
"Fred BROUARD" a écrit dans le message de news:
Un petit exemple :
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES (L VARCHAR(296))
INSERT INTO #T_LIGNES EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES WHERE SUBSTRING(L, 1, 1) = ' ' OR L IS NULL
CREATE TABLE T_FILES_FLS ( FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY, FLS_NAME VARCHAR(256) NOT NULL, FLS_DH DATETIME NOT NULL, FLS_SIZE INTEGER, FLS_DIR BIT NOT NULL DEFAULT 0 )
-- attention : dépend des paramètres régionaux SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS SELECT SUBSTRING(L, 40, 256), CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME), CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER) END, CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1 ELSE 0 END FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT * FROM T_FILES_FLS WHERE FLS_DIR = 0
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Merci beaucoup pour cette aide !
Laurent
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
edlZigi2GHA.2176@TK2MSFTNGP04.phx.gbl...
Un petit exemple :
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES
(L VARCHAR(296))
INSERT INTO #T_LIGNES
EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES
WHERE SUBSTRING(L, 1, 1) = ' '
OR L IS NULL
CREATE TABLE T_FILES_FLS
(
FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
FLS_NAME VARCHAR(256) NOT NULL,
FLS_DH DATETIME NOT NULL,
FLS_SIZE INTEGER,
FLS_DIR BIT NOT NULL DEFAULT 0
)
-- attention : dépend des paramètres régionaux
SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS
SELECT SUBSTRING(L, 40, 256),
CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME),
CASE
WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL
ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER)
END,
CASE
WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1
ELSE 0
END
FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT *
FROM T_FILES_FLS
WHERE FLS_DIR = 0
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc
stockée.
Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire
comment je peux récupérer séquentiellement les noms de fichiers listés
dans une variable ?
D'avance merci !
Laurent
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news: eaK%23DZE2GHA.4264@TK2MSFTNGP05.phx.gbl...
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL,
scruter un répertoire.
Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent
est il possible sous SQL Server ? Le but étant de retourner tous les
noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
-- obtenir la liste des fichiers d'un répertoire dans une table
CREATE TABLE #T_LIGNES (L VARCHAR(296))
INSERT INTO #T_LIGNES EXEC master..xp_cmdshell 'dir *.*'
DELETE FROM #T_LIGNES WHERE SUBSTRING(L, 1, 1) = ' ' OR L IS NULL
CREATE TABLE T_FILES_FLS ( FLS_ID INTEGER NOT NULL IDENTITY PRIMARY KEY, FLS_NAME VARCHAR(256) NOT NULL, FLS_DH DATETIME NOT NULL, FLS_SIZE INTEGER, FLS_DIR BIT NOT NULL DEFAULT 0 )
-- attention : dépend des paramètres régionaux SET DATEFORMAT DMY
SELECT SUBSTRING(L, 18, 21) FROM #T_LIGNES
INSERT INTO T_FILES_FLS SELECT SUBSTRING(L, 40, 256), CAST(SUBSTRING(L, 1, 10) + ' ' + SUBSTRING(L, 13, 5) AS DATETIME), CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN NULL ELSE CAST(REPLACE(SUBSTRING(L, 18, 21), ' ', '') AS INTEGER) END, CASE WHEN SUBSTRING(L, 25, 5) = '<DIR>' THEN 1 ELSE 0 END FROM #T_LIGNES
DROP TABLE #T_LIGNES
SELECT * FROM T_FILES_FLS WHERE FLS_DIR = 0
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
LM a écrit :
Merci pour cette information, cependant je connaissais cette proc stockée. Le problème étant que je ne sais pas l'exploiter. Pouvez vous me dire comment je peux récupérer séquentiellement les noms de fichiers listés dans une variable ? D'avance merci ! Laurent
"Fred BROUARD" a écrit dans le message de news: eaK%
LM a écrit :
Bonsoir à tous,
J'aurais aimé savoir comment, depuis une procédure stockée en TSQL, scruter un répertoire. Pour exemple, cela est possible en VB avec Dir(C:*.*). L'équivalent est il possible sous SQL Server ? Le but étant de retourner tous les noms de fichiers présents dans un répertoire dans une boucle.
D'avance merci
Laurent
EXEC master.dbo.xp_cmdshell 'DIR C:TEMP*.*'
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************