1nd round export and import error

lkptantan發表於2007-04-06

1I have checked the log of the 1nd round import and found there is a stop in the end of the SAPVIEW.log,

(IMP) ERROR: CREATE statement failed for object "M_ZSNOI"
(CREATE VIEW "M_ZSNOI" ( "MANDT", "BUKRS", "ZCSRG", "ZCSNO" ) AS SELECT T0001.MANDT, T0001.BUKRS, T0001.ZCSRG, T0001.ZCSNO
FROM ZPICNTSH T0001)
DbSlExecute: rc = 107
(SQL error 208)
error message returned by DbSl:
MSGNO 208, MSGSTATE 1, SEVERITY 16 -- Invalid object name 'ZPICNTSH'.
srvname SAPSRV01 : procname M_ZSNOI : line 1
#STOP: 20070405101300

Maybe is this caused the TRDIR's lost, TRDIR is also a view, And I have checked the str file(SAPVIEW.STR) of 1nd round export, the TRDIR is exported,

vie: TRDIR
fld: NAME
fld: SQLX
fld: EDTX
fld: VARCL
fld: DBAPL
fld: DBNA
fld: CLAS
fld: TYPE
fld: OCCURS
fld: SUBC
fld: APPL
fld: SECU
fld: CNAM
fld: CDAT
fld: UNAM
fld: UDAT
fld: VERN
fld: LEVL
fld: RSTAT
fld: RMAND
fld: RLOAD
fld: FIXPT
fld: SSET
fld: SDATE
fld: STIME
fld: IDATE
fld: ITIME
qry: SELECT PROG, SQLX, EDTX, VARCL, DBAPL, DBNA, CLAS, TYPE, OCCURS, SUBC, APPL, SECU, CNAM, CDAT, UNAM, UDAT, VERN, LEVL, RSTAT, RMAND, RLOAD, FIXPT, SSET, SDATE, STIME, IDATE, ITIME
FROM D010SINF
WHERE R3STATE = 'A' AND R3MODE = 'M' AND R3VERSION = '0001'

I have search MS SQL help, found SQL error 208:

Error 208
Severity Level 16
Message Text
Invalid object name '%.*ls'.

Explanation
This error occurs when an object that does not exist is referenced. If the object exists, you might need to include the owner¡¯s name in the object name.

If the object is not owned by the user attempting to access it, and it is not owned by the database owner, all references to the object must include the owner¡¯s name. For example, if user1 creates a table called test, other users must use the name user1.test when they refer to the table.

The Microsoft? SQL Server? naming convention for database objects is:

[[[server_name.][database_name].][owner_name].]object_name

The default value for server_name is the current server and the default value for database_name is the current database. The default value for owner_name is the current user. Because owner_name is part of the object name, it is possible for two different users to have tables with the same name in the same database (for example, user1.test and user2.test). For additional information about naming conventions, see Transact-SQL Syntax Conventions.

This message can also occur when you reference a temporary table that was created with an EXECUTE statement.

Action
The procedure for handling this error depends on what you know about the object indicated in the error message text.

The appropriate permissions must also be set to allow access to an object. If these permissions are not set, error 229 or 230 occurs.

If you do not know who owns the object
Execute sp_help with no parameters to display the object owner.
Or

Query the Information Schema Views if the object is a table or view to determine the object owner and type. If the object is not a table or a view, query the sysobjects system table to determine the object owner and type.
For example, to determine the owner and type for the object named table_1, execute the following:

USE master

GO

SELECT TABLE_SCHEMA

FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_NAME = 'table_1'

GO



If no rows are returned from this query, the object either resides in a different database or does not exist.

If you do not own the object in question
Include the object owner in the object name. For example:
SELECT *

FROM user1.table_1



Although using fully qualified object names eliminates this problem, remember that including the fully qualified object name in an application might complicate the maintenance of the application. For example, if all references to a table include the database name, changing the database name could become difficult.

Or

Have the database owner create the object. If the owner creates the object, any user can find the object without specifying the owner. However, temporary tables reside in tempdb and are dropped automatically when the user process or server connection that created them is terminated. Users cannot share temporary tables, even if they are created by the database owner.
If the object does not reside in the database
Switch context to the correct database using the USE statement. For example:
USE database_1



Or

Qualify the object name with the database name. For example:
SELECT *

FROM database_1.user1.table_1



If you own the object or if the object is owned by the database owner, the owner name is not needed. For example:

SELECT *

FROM database_1..table_1



If a temporary table created with an EXECUTE statement is referenced
If you must use the EXECUTE statement to create a temporary table, create it as a global temporary table using the syntax ##tablename.
See Also
CREATE TABLE SELECT
Creating and Modifying a Table sp_help
Errors 1 - 999 sysobjects
EXECUTE Transact-SQL Syntax Conventions
Information Schema Views USE
Querying SQL Server System Catalogs

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/167898/viewspace-908933/,如需轉載,請註明出處,否則將追究法律責任。

相關文章