none
bcp RRS feed

  • שאלה

  • שלום

    אני עובד עם SQL2000 SP4.

    אני מוריד נתונים לקובץ טקסט בעזרת BCP OUT מתוך VIEW .האם אני יכול להשתמש בפרמטרים בתוך פקודה ב CMD ?

    לדוגמה BCP DB..VIEW WHERE Y=X OUT FILE 

    נסיתי וזה לא עובד.בנתיים אני משנה פילטר בתוך VIEW.

    יום שלישי 28 דצמבר 2010 11:44

תשובות

  • הי,

    יש לך שגיאה בשירשור של הפרמטר!!!

    תראה בדוגמא ששלחתי אחרי השווה אתה צריך לסגור מחרוזת, לשרשר את הפרמטר, ולהשלים את המחרוזת.

    את הגרש הבןדד של סגירת המחרוזת תציב לפני הפרמטר

    אתה צריך לקבל מחרוזת כזו

     

    bcp "Select * From dbname..view Where storer ='val' " queryout c:\employee.txt -c -T

    Declare @Command varchar(4000)
    Declare @storer char(10)
    Set @storer ='val'
    
    Set @Command = 'bcp ' +
    '"Select * From dbname..view Where storer =''' + @storer  + '''' +
         '"' + ' queryout c:\employee.txt -c -T'
    

     


    אסף שלם
    • סומן כתשובה על-ידי tech supp יום רביעי 29 דצמבר 2010 07:17
    יום שלישי 28 דצמבר 2010 14:52

כל התגובות

  • הי,

    לא תוכל לשלוח פרמטרים, אבל בעזרת בניה דינאמית של הפקודה והרצה ע"י הפקודה  xp_cmdshell תוכל להתחשב בפרמטרים. 


    אסף שלם
    יום שלישי 28 דצמבר 2010 12:27
  • תודה,

    תוכל לתת לי דוגמה אם SELECT פשוט?

    יום שלישי 28 דצמבר 2010 12:35
  •  

    Declare @Command varchar(4000)
    Declare @EmployeeId int
    Set @EmployeeId = 1
    
    Set @Command = 'bcp ' +
    '"Select * From db_name.dbo.Employee Where empId = ' + Convert(varchar(10), @EmployeeId) +
    '"' + ' queryout c:\employee.txt -c -T'
    
    exec xp_cmdshell @Command
    
    בהצלחה
    אסף שלם
    יום שלישי 28 דצמבר 2010 13:18
  • כתבתי כך ומקבל הודעות שגיאה
    אחד ההודעות על שם עמודה למרוט שהיא קיימת


    SQLState = S0022, NativeError = 207
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'val'.
    Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared

     Declare @Command varchar(4000)
    Declare @storer  char(10)
    Set @storer ='val'

    Set @Command = 'bcp ' +
    '"Select * From dbname..view Where storer =@storer  ' +
             '"' + ' queryout c:\employee.txt -c -T'

    exec xp_cmdshell @Command

    יום שלישי 28 דצמבר 2010 13:55
  • הי,

    יש לך שגיאה בשירשור של הפרמטר!!!

    תראה בדוגמא ששלחתי אחרי השווה אתה צריך לסגור מחרוזת, לשרשר את הפרמטר, ולהשלים את המחרוזת.

    את הגרש הבןדד של סגירת המחרוזת תציב לפני הפרמטר

    אתה צריך לקבל מחרוזת כזו

     

    bcp "Select * From dbname..view Where storer ='val' " queryout c:\employee.txt -c -T

    Declare @Command varchar(4000)
    Declare @storer char(10)
    Set @storer ='val'
    
    Set @Command = 'bcp ' +
    '"Select * From dbname..view Where storer =''' + @storer  + '''' +
         '"' + ' queryout c:\employee.txt -c -T'
    

     


    אסף שלם
    • סומן כתשובה על-ידי tech supp יום רביעי 29 דצמבר 2010 07:17
    יום שלישי 28 דצמבר 2010 14:52
  • תודה רבה
    יום רביעי 29 דצמבר 2010 07:17