6
votes

I've just create a new table in my sqlserver name exporttable now I'm trying to push out using cmd bcp but om getting this following error:

SQLState = S1000, NativeError = 0 Error = [Microsoft][ODBC Driver 13 for SQL Server]Unable to open BCP host data-file

Here is my path:

C:\Users\Serge>BCP Testing.bdo.Exporttable out "C:\Users\Serge\Desktop" -C -T

anyone can help ?

After trying Shnugos suggestion to add a filename I got this error:

SQLState = S0002, NativeError = 208 Error = [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid object name 'Testing.bdo.ExportTable'. SQLState = 37000, NativeError = 11529 Error = [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]The metadata could not be determined because every code path results in an error; see previous errors for some of these. –

4
Have you tried googling that error message? Please show some research effort. People are willing to help you if you at least try to solve the problem at your own. Please read How to create a Minimal, Complete, and Verifiable example and How do I ask a good question?. Then, update and improve your question.Martin Nyolt

4 Answers

6
votes

From the error I take, that the data file cannot be opened:

C:\Users\Serge>BCP Testing.bdo.Exporttable out "C:\Users\Serge\Desktop\MyFile.txt" -C -T

I think, you have to add a filename behind the \Desktop. Desktop is an existing directory and cannot be opened as file ...

And - btw - it might be necessary to add -S Servername...

UPDATE

Found this here

Whenever I get this message, it's because of one of three things:

1) The path/filename is incorrect (check your typing / spelling)

2) The file does not exist. (make sure the file is where you expect it to be)

3) The file is already open by some other app. (close the other app to release the file)

For 1) and 2) - remember that paths are relative to where bcp is executing. Make sure that bcp.exe can access the file/path from it's context.

/Kenneth

5
votes

If you are running BCP through xp_cmdshell, run the following--> xp_cmdshell 'whoami'; GO --Make sure whatever user value you get back has full access to the file in question

2
votes

Run: EXEC master..xp_cmdshell 'DIR C:\Users\Serge\Desktop', this will show if you have access to the path.

Remember if you are accessing SQL remotely or over a network, the output ie. "C:\Users\Serge\Desktop" will be the C drive on the SQL Server, not your remote PC you are working on.

2
votes

I know this is old, but you also appear to have the schema spelled wrong. C:\Users\Serge>BCP Testing.bdo.Exporttable out "C:\Users\Serge\Desktop" -C -T

s/b

C:\Users\Serge>BCP Testing.dbo.Exporttable out "C:\Users\Serge\Desktop" -C -T