Puis-je spécifier une entrée de fichier sql avec bcp?
Comment puis-je spécifier une entrée de fichier sql avec une longue requête lors de l'utilisation de la pca? J'ai essayé d'utiliser le -i
option mais elle continue à se plaindre d'une erreur de ligne de commande avec aucune des informations supplémentaires. Est-ce possible?
D'entrée de fichier SQL? Pas de. Vous pouvez spécifier un fichier de données et un fichier de format. Si vous souhaitez utiliser SQL, peut-être bulk insert est un meilleur choix.
En fait, je suis en train d'extraire des données à partir d'une table. Avant cela, j'ai été faire une sélection basée sur une chaîne de caractères et de les fournir à bcp mais j'ai un plus requête maintenant.
Vous pouvez créer une vue avec la requête, peut-être.
Malheureusement, je n'ai pas les autorisations suffisantes pour créer une vue.
Vous devriez être en mesure de créer une procédure temporaire, même si vous n'avez pas de DDL droits. CRÉER PROC #MYPROC SELECT* from MYTABLE, Puis exécutez votre nouvellement créé proc. Ce proc doit retourner une persistant résultat. Le meilleur pari serait de le déposer sur une table temp de le finir ensuite le proc avec select * from table temp.
En fait, je suis en train d'extraire des données à partir d'une table. Avant cela, j'ai été faire une sélection basée sur une chaîne de caractères et de les fournir à bcp mais j'ai un plus requête maintenant.
Vous pouvez créer une vue avec la requête, peut-être.
Malheureusement, je n'ai pas les autorisations suffisantes pour créer une vue.
Vous devriez être en mesure de créer une procédure temporaire, même si vous n'avez pas de DDL droits. CRÉER PROC #MYPROC SELECT* from MYTABLE, Puis exécutez votre nouvellement créé proc. Ce proc doit retourner une persistant résultat. Le meilleur pari serait de le déposer sur une table temp de le finir ensuite le proc avec select * from table temp.
OriginalL'auteur Legend | 2012-05-13
Vous devez vous connecter pour publier un commentaire.
Autant que je suis concerné, l'utilitaire BCP prend uniquement en charge les requêtes Transact-SQL directement écrit à la ligne de commande. Ex:
Selon sa référence le "-i" option:
Avis qu'elle diffère de la Utilitaire sqlcmd "-i" option:
SELECT
de commande est trop longue?Je n'ai jamais eu à utiliser de longues requêtes moi-même, mais une rapide recherche sur Google les résultats dans ce lien qui peut vous être utile: CORRIGÉ: Bcp.exe avec une Longue Chaîne de Requête Peut Entraîner l'Échec d'Assertion
Quand j'ai couru dans BCP des requêtes qui ont été trop longtemps, nous avons eu recours à la mémorisation de points de vue sur la source. Notre BCP requête peut ensuite être simplement "select x,y,z de [VIEW]"
OriginalL'auteur Thomas C. G. de Vilhena
J'ai eu ce problème aujourd'hui et a trouvé une solution pratique, au moins dans une ad-hoc de la situation.
Tables temporaires peuvent être créées par n'importe quel utilisateur avec les autorisations de connexion. Cela signifie que vous pouvez également créer des tables temporaires GLOBALES.
Il suffit d'exécuter votre requête dans enterprise manager (ou sql cmd ou quoi que ce soit) à l'aide de SELECT ...INTO avec une table temporaire globale par exemple
Vous pouvez ensuite utiliser la table temporaire dans le PCA de la requête avec un simple
Ensuite déposer le temp de table à l'aide d'enterprise manager
bcp ##mytemptable out
...Ces bretzels font me soif
Si vous créez un mondial de la table temporaire à l'aide de l'utilitaire SQLCMD, il est perdu dès que la commande est terminée.
OriginalL'auteur LarryDavid
Je n'ai d'autre moyen pour résoudre ce problème.
J'ai créer un fichier batch qui lire un fichier et l'envoyer à votre contenu dans bcp de commande. Voir:
De script et de recevoir deux paramètres:
Exécuter un script cmd comme ça:
l'exportation de la requête.chauve-souris de la requête.sql export.txt
J'espère aidé.
OriginalL'auteur Rafael Gomes Francisco
Multi-requêtes peuvent être donnés à bcp facilement à l'aide de powershell:
OriginalL'auteur torbiak