This section contains error messages for the Adaptive Server Procedure Manager.
20
Bad pointer 0x%lx encountered while remapping stored procedure '%.*s'. Must re-create procedure.
When a stored procedure is created, Adaptive Server stores an efficient, normalized form of the procedure called a query tree in the sysprocedures table. When you upgrade the server, the query trees for stored procedures and certain other database objects may be remapped to be compatible with the new release.
Error 2805 is seen in the following situations:
When you upgrade from a prior release. The error is due to a remap failure during the upgrade.
If you used dump database and load database to move data from one platform to another, for example Digital OpenVMS VAX to Digital OpenVMS Alpha. Stored procedures executed on the target platform following such a migration may raise Error 2805.
This error may be accompanied by Error 2812.
If Error 2805 occurs following an upgrade, you can resolve the problem by dropping and re-creating the procedure.
If you see Error 2805 following an attempt to migrate data from one platform to another using dump database and load database, note that dumps and loads are not a supported mechanism for copying data between servers on different platforms. Instead, you will need to re-create and load the database manually using bulk copy.
For more information, refer to the Adaptive Server installation and configuration guide.
All versions
20
Stored procedure '%.*s' is corrupted. Must re-create procedure.
This error may be due to hardware problems.
Procedure buffers are data structures that manage Adaptive Server stored procedures (and other compiled objects like triggers, rules, defaults, check constraints, and views) in the procedure cache. The server uses one procedure buffer for every copy of a named object stored in the procedure cache.
The Procedure Buffer Manager maintains an array of procedure buffers in memory, and controls and synchronizes access to procedure buffers. It maintains a usage count to determine whether a procedure buffer is in use.
Error 2806 is raised when the Buffer Manager detects one of the following problems:
While looking for an available procedure buffer for a given stored procedure or a trigger, a buffer with usage count greater than 1 is found. Buffers for a stored procedure or a trigger are not shared and should never have a usage count exceeding 1.
While reading rows from sysprocedures, the Buffer Manager finds a header but no additional rows for the object.
While reading rows from sysprocedures, the Buffer Manager finds out-of-sequence rows for the object.
Error 2806 results from corrupted procedure buffers. It may be related to hardware or operating system problems.
If this is an isolated error on a user stored procedure or trigger, drop and re-create the procedure to resolve the problem.
If the error occurs on one or more system stored procedures (that is, procedures beginning with the "sp_" prefix), you will need to recreate the sybsystemprocs database where system procedures reside. Refer to "Recovering the sybsystemprocs Database" in the System Administration Guide.
If other errors are reported (2806 errors during installation of a new server are often accompanied by 605 or other errors), follow the directions in this manual for recovering from those errors.
Have the following information ready when you call Sybase Technical Support:
Server version and SWR rollup level
Server error log
Text of all error messages.
All versions
18
Cannot create procedure dbid %d, objid %ld, with a group number of %d.
This error occurs when Adaptive Server is unable to insert a row into the sysprocedures table. This can happen during creation of a procedure, view, or trigger, or during remapping of a compiled object.
The most common reason for Error 2811 is lack of data space to add the procedure, and therefore it is often raised following an 1105 error.
Determine what errors occurred before the 2811 error by examining:
The Server error log
Errors the user saw when running the application
The application log file
If an 1105 error occurred, refer to Error 1105 for recovery instructions. If errors other than 1105 occurred, follow the recovery instructions in this manual for those errors. If your manual does not include these instructions, call Sybase Technical Support.
All versions
16
Stored procedure '%.*s' not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
This error occurs when an attempt is made to execute a stored procedure that does not exist. If the procedure actually does exist, that is, it appears when sp_help is run with no parameters, Error 2812 can occur if you do not fully qualify the procedure name.
Adaptive Server's naming convention for database objects is as follows:
database.owner.object_name.column_name
The default value for database is the current database and the default value for owner is the current user. Remember that the owner is part of the object, so two different users can have two different procedures with the same object_name in the same database, for example user1.proc1 and user2.proc1.
If the procedure is not owned by the user attempting to execute it, and it is not owned by the database owner ( “dbo”), then all references to it must include the owner name. For example, suppose user1 creates a procedure called proc1. Any users other than user1 must prefix the procedure name with the owner name when executing it, that is, exec user1.proc1.
The system stored procedures are an exception to the naming convention. These procedures reside in the sybsystemprocs database, are owned by the Sybase system administrator, and have names starting with “sp_”. You can execute system stored procedures from any database and they will reference the system catalog of the current database. The search path for all “sp_” procedures is:
The current database
The sybsystemprocs database
The master database
If Error 2812 occurs while running the installmaster script, it means that the sp_configure procedure was not found. You can ignore this.
If Error 2812 occurs while you are trying to dump or load a database, you may be trying to dump to an Adaptive Server rather than to a Backup Server.
If you do not know who owns the procedure, use sp_help to display the owner. Run this procedure without any parameters to display objects owned by other users.
Alternatively, you can use the following query to determine who owns the stored procedure you are attempting to execute:
1> select name,owner=user_name(uid) 2> from sysobjects 3> where name = "procedure_name" 4> go
If the procedure does not appear in the output of this query, it is either in a different database or does not exist.
If you do not own the procedure, qualify the procedure name with the owner name:
1> execute owner_name.procedure_name 2> go
For procedures used by many users of a database, it is usually easiest if the database owner creates the procedure. This will allow any user to find the procedure without specifying an owner name.
If the procedure is not in the database where it is executed, fully qualify the procedure name with the database name:
1> exec database_name.user_name.procedure_name 2> go
The owner name is not needed if you or the database owner own the procedure:
1> exec database_name..procedure_name 2> go
Execute permission must be provided so other users can execute this procedure, but no permissions are required to see the text of the procedure.
If this error occurs on system stored procedures, it might be resolved by running the installmaster script. This installs all of the system procedures and initializes various other Adaptive Server structures.
If Error 2812 occurs while you are trying to do a dump or load, you may be trying to dump to an Adaptive Server rather than to a Backup Server. Check your Backup Server assignment with the following command:
1> sp_helpserver SYB_BACKUP 2> go
The network_name column is the interfaces file that contains the entry for this Server.
Check the status of this Server:
1> exec SYB_BACKUP...sp_ps 2> go
Open Server applications have the stored procedure sp_ps while Adaptive Servers do not. Therefore, if this command fails because sp_ps is not found, most likely the Server defined for SYB_BACKUP is an Adaptive Server and not a Backup Server. If that is the case:
Find out how the Backup Server should be defined.
Drop the SYB_BACKUP entry using sp_dropserver.
Add the correct entry using sp_addserver.
Refer to the Transact-SQL User's Guide for information about naming conventions.
Refer to the Reference Manual for information about sp_dropserver and sp_addserver.
All versions
19
Process %d cannot hold PROC_BUF 0x%1x named '%.*s' because it holds another PROC_BUF 01%1x named '%.*s'. A process can only hold one view, rule, or default at a time.
Error 2824 can be caused by the following situations:
A process can hold many procedures and triggers but it can only hold one view, rule, or default at a time. If a process already holds a view, rule, or default, and Adaptive Server tries to add another one for the process, Error 2824 is raised.
Error 2824 can be caused in the following situations:
A view referenced by stored procedures or triggers has been dropped and re-created. (Stored procedures and triggers are not reresolved when a view they reference is dropped and re-created.)
Procedure cache corruption has occurred.
Use sp_help view_name to determine whether a view that stored procedures or triggers reference has been dropped and re-created. If the creation time of the view is later than the creation time of the procedure or trigger that refers to it, drop and re-create the stored procedures and triggers that reference that view.
If the 2824 error persists, there is probably procedure cache corruption. Stop and restart Adaptive Server to clear the corruption.
All versions
16
The procedure tree is old. Use the sp_remap procedure to remap all the procedures in this database.
When you execute a stored procedure, Adaptive Server checks to determine whether the procedure is already in cache. If the procedure is not in cache, Adaptive Server reads the procedure into cache from sysprocedures and recompiles it. Before Adaptive Server recompiles the procedure, it checks the Server release number of the procedure to make sure it is up to date for the current release. Error 2835 occurs when the procedure is not up to date for the current release.
This error can occur because the query remapping phase of an upgrade failed. If that is the case, all the query trees might need to be remapped.
Use sp_remap to remap each procedure, trigger, rule, default, and view in the current database:
1> use database_name 2> go
1> sp_remap object_name 2> go
where database_name is the name of the database where the object resides and object_name is the name of the object to remap.
If you have many objects to remap, refer to “How to Remap All Objects in a Database” in the Encyclopedia of Tasks chapter.
Refer to the Reference Manual for information about sp_remap.
All versions