List of error messages between 16000 and 16999 in SQL Server 2017.
These error messages are all available by querying the sys.messages
catalog view on the master
database.
Filter by:
message_id | severity | is_event_logged | text |
---|---|---|---|
16001 | 16 | 0 | Data masking is not supported for the data type of column ‘%.*ls’. |
16002 | 16 | 0 | Invalid data masking function in column ‘%.*ls’. |
16003 | 16 | 0 | The data type of column ‘%.*ls’ does not support data masking function ‘%.*ls’. |
16004 | 16 | 0 | Incorrect number of parameters for data masking function ‘%.*ls’ for column ‘%.*ls’. |
16005 | 16 | 0 | Invalid argument for data masking function ‘%.*ls’ for column ‘%.*ls’. |
16006 | 16 | 0 | Invalid data masking format for function ‘%.*ls’ in column ‘%.*ls’. |
16007 | 16 | 0 | The column ‘%.*ls’ does not have a data masking function. |
16008 | 16 | 0 | Cannot add a masking function to a column that is encrypted. |
16009 | 16 | 0 | Cannot add a masking function to a column used as a sparse column set. |
16010 | 16 | 0 | External script cannot be executed on masked data columns. |
16011 | 16 | 0 | The data masking function for column ‘%.*ls’ is too long. |
16012 | 16 | 0 | The query accessed too many different databases. |
16013 | 16 | 0 | Cannot add a masking function to a column used in a key to a fulltext index. |
16014 | 16 | 0 | Failed to create fulltext index because key column ‘%.*ls’ has a masking function defined on it. |
16015 | 16 | 0 | The index on view ‘%.*ls’ cannot be created because the view is referencing table ‘%.*ls’ with masked columns. |
16016 | 16 | 0 | Cannot add a masking function to a column used in a sparse column set. |
16202 | 16 | 0 | Keyword or statement option ‘%.*ls’ is not supported on the ‘%.*ls’ platform. |
16601 | 16 | 0 | Credential of database ‘%ls’ are invalid. |
16602 | 16 | 0 | Cannot delete sync agent ‘%ls’ because it is used by sync member ‘%ls’. |
16603 | 16 | 0 | Cannot add database ‘%ls’ into sync group because the database name is invalid. |
16604 | 16 | 0 | Hub database ‘%ls’ is invalid. |
16605 | 16 | 0 | Member database ‘%ls’ is invalid. |
16606 | 16 | 0 | Database ‘%ls’ cannot be deleted because it is used as a sync metadata database which still contains sync groups and/or sync agents. |
16607 | 16 | 0 | Sync metadata database ‘%ls’ is invalid. |
16608 | 16 | 0 | Cannot create or update sync group because the sync group name ‘%ls’ is invalid. |
16609 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the conflict resolution policy is invalid. |
16610 | 16 | 0 | Cannot create sync group because the sync group name ‘%ls’ is used. |
16611 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the sync schema contains circular reference. |
16612 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the table ‘%ls’ in sync schema contains no clustered index. |
16613 | 16 | 0 | Cannot delete sync group ‘%ls’ because the sync group is syncing. |
16614 | 16 | 0 | Cannot create or update sync group ‘%ls’ because database ‘%ls’ is invalid. |
16615 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the sync interval is invalid. |
16616 | 16 | 0 | Cannot update sync schema because the data type change is not supported. |
16617 | 16 | 0 | Sync group ‘%ls’ is not ready to update sync schema because there are some ongoing operations on the sync group. |
16618 | 16 | 0 | Cannot update sync schema because some columns are missing in database ‘%ls’. |
16619 | 16 | 0 | Cannot update sync schema because some tables are missing in database ‘%ls’. |
16620 | 16 | 0 | Cannot update sync schema because the format of sync schema is invalid. |
16621 | 16 | 0 | Sync group ‘%ls’ is not in active state. Make sure the sync schema of it is set. |
16622 | 16 | 0 | Hub database ‘%ls’ is suspended because the credential of it is invalid. |
16623 | 16 | 0 | Sync group ‘%ls’ is invalid. |
16624 | 16 | 0 | Cannot create or update sync member because the sync member name ‘%ls’ is invalid. |
16625 | 16 | 0 | Cannot create or update the sync member ‘%ls’ because the database type ‘%ls’ provided is invalid. |
16626 | 16 | 0 | Cannot create or update the sync member ‘%ls’ because the sync direction ‘%ls’ provided is invalid. |
16627 | 16 | 0 | Cannot create or update the sync member ‘%ls’ because the sync agent ‘%ls’ provided is invalid. |
16628 | 16 | 0 | Cannot create or update the sync member ‘%ls’ because the SQL Server database ID ‘%ls’ provided is invalid. |
16629 | 16 | 0 | Cannot create sync member because the sync member name ‘%ls’ provided is used. |
16630 | 16 | 0 | Cannot create sync member ‘%ls’ because the database ‘%ls’ provided is already added as a sync member. |
16631 | 16 | 0 | Cannot delete sync member ‘%ls’ when it is syncing. |
16632 | 16 | 0 | Sync member ‘%ls’ is invalid. |
16633 | 16 | 0 | Cannot create sync agent because the sync agent name ‘%ls’ provided is used. |
16634 | 16 | 0 | Sync agent ‘%ls’ is invalid. |
16635 | 16 | 0 | Cannot create sync group ‘%ls’ because the maximum number of sync groups can be created is %d. |
16636 | 16 | 0 | Cannot create sync member ‘%ls’ because the maximum number of sync members can be created in a sync group is %d. |
16637 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the maximum count of tables in sync schema is %d. |
16638 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the table ‘%ls’ in sync schema contains no primary key. |
16639 | 16 | 0 | Cannot create or update sync group ‘%ls’ because the sync schema provided contains unsupported column data type. |
16640 | 16 | 0 | Cannot refresh schema of the database ‘%ls’. |
16641 | 16 | 0 | Cannot create sync agent ‘%ls’ under a different SQL Server than the one of sync metadata database. |
16901 | 16 | 0 | %hs: This feature has not been implemented yet. |
16902 | 16 | 0 | %ls: The value of the parameter %ls is invalid. |
16903 | 16 | 0 | The «%ls» procedure was called with an incorrect number of parameters. |
16904 | 16 | 0 | sp_cursor: optype: You can only specify ABSOLUTE in conjunction with DELETE or UPDATE. |
16905 | 16 | 0 | The cursor is already open. |
16906 | 17 | 0 | Temporary storage used by the cursor to store large object variable values referred by the cursor query is not usable any more. |
16907 | 16 | 0 | %hs is not allowed in cursor statements. |
16909 | 16 | 0 | %ls: The cursor identifier value provided (%x) is not valid. |
16910 | 16 | 0 | The cursor %.*ls is currently used by another statement. |
16911 | 16 | 0 | %hs: The fetch type %hs cannot be used with forward only cursors. |
16914 | 16 | 0 | The «%ls» procedure was called with too many parameters. |
16915 | 16 | 0 | A cursor with the name ‘%.*ls’ already exists. |
16916 | 16 | 0 | A cursor with the name ‘%.*ls’ does not exist. |
16917 | 16 | 0 | Cursor is not open. |
16922 | 16 | 0 | Cursor Fetch: Implicit conversion from data type %s to %s is not allowed. |
16924 | 16 | 0 | Cursorfetch: The number of variables declared in the INTO list must match that of selected columns. |
16925 | 16 | 0 | The fetch type %hs cannot be used with dynamic cursors. |
16926 | 16 | 0 | sp_cursoroption: The column ID (%d) does not correspond to a text, ntext, or image column. |
16927 | 16 | 0 | Cannot fetch into text, ntext, and image variables. |
16928 | 16 | 0 | sp_cursor: Exec statement is not allowed as source for cursor insert. |
16929 | 16 | 0 | The cursor is READ ONLY. |
16930 | 16 | 0 | The requested row is not in the fetch buffer. |
16931 | 16 | 0 | There are no rows in the current fetch buffer. |
16932 | 16 | 0 | The cursor has a FOR UPDATE list and the requested column to be updated is not in this list. |
16933 | 16 | 0 | The cursor does not include the table being modified or the table is not updatable through the cursor. |
16934 | 10 | 0 | Optimistic concurrency check failed. The row was modified outside of this cursor. |
16935 | 16 | 0 | No parameter values were specified for the sp_cursor-%hs statement. |
16936 | 16 | 0 | sp_cursor: One or more values parameters were invalid. |
16937 | 16 | 0 | A server cursor cannot be opened on the given statement or statements. Use a default result set or client cursor. |
16938 | 16 | 0 | sp_cursoropen/sp_cursorprepare: The statement parameter can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignments. |
16941 | 16 | 0 | Cursor updates are not allowed on tables opened with the NOLOCK option. |
16942 | 16 | 0 | Could not generate asynchronous keyset. The cursor has been deallocated. |
16943 | 16 | 0 | Could not complete cursor operation because the table schema changed after the cursor was declared. |
16945 | 16 | 0 | The cursor was not declared. |
16946 | 16 | 0 | Could not open the cursor because one or more of its tables have gone out of scope. |
16947 | 16 | 0 | No rows were updated or deleted. |
16948 | 16 | 0 | The variable ‘%.*ls’ is not a cursor variable, but it is used in a place where a cursor variable is expected. |
16949 | 16 | 0 | The variable ‘%.*ls’ is a cursor variable, but it is used in a place where a cursor variable is not valid. |
16950 | 10 | 0 | The variable ‘%.*ls’ does not currently have a cursor allocated to it. |
16951 | 16 | 0 | The variable ‘%.*ls’ cannot be used as a parameter because a CURSOR OUTPUT parameter must not have a cursor allocated to it before execution of the procedure. |
16952 | 16 | 0 | A cursor variable cannot be used as a parameter to a remote procedure call. |
16953 | 10 | 0 | Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor. |
16954 | 16 | 0 | Executing SQL directly; no cursor. |
16955 | 16 | 0 | Could not create an acceptable cursor. |
16956 | 10 | 0 | The created cursor is not of the requested type. |
16957 | 16 | 0 | FOR UPDATE cannot be specified on a READ ONLY cursor. |
16958 | 16 | 0 | Could not complete cursor operation because the set options have changed since the cursor was declared. |
16959 | 16 | 0 | Unique table computation failed. |
16960 | 16 | 0 | You have reached the maximum number of cursors allowed. |
16961 | 10 | 0 | One or more FOR UPDATE columns have been adjusted to the first instance of their table in the query. |
16962 | 16 | 0 | The target object type is not updatable through a cursor. |
16963 | 16 | 0 | You cannot specify scroll locking on a cursor that contains a remote table. |
16964 | 16 | 0 | For the optimistic cursor, timestamp columns are required if the update or delete targets are remote. |
16965 | 16 | 0 | Cursor scroll locks were invalidated due to a transaction defect. Reissue the UPDATE or DELETE statement after a cursor fetch. |
16966 | 16 | 0 | %ls: Specified concurrency control option %d (%ls) is incompatible with static or fast forward only cursors. Only read-only is compatible with static or fast forward only cursors. |
16992 | 16 | 0 | The cursor operation is required to wait for cursor asynchronous population to complete. However, at this point the transaction cannot be yielded to let the asynchronous population to continue. |
16996 | 16 | 0 | %ls cannot take output parameters. |
16998 | 16 | 0 | The asynchronous cursor worktable population thread spawn failed. |
16999 | 20 | 1 | Internal Cursor Error: The cursor is in an invalid state. |
ORA-16000 on ADG standby via dblink to primary
Some day ago my collegues asked me about ORA-16000 error in application log.
[22/04/2013:13:42:40] xxxxxxxxxxxxxxxxx:sql execute error: ORA-16000: database open for read-only access
Small deviation.
We have some service who has support perform I/O read operation (like select) on standby side. Client connections always occur on standby side and PL/SQL Packages to decide, what user want to reading or to changing data (insert,update).
So, from application log provided by our application administrators, i can see which exactly procedure performed.
Let’s try perform that procedure.
SQL> begin user.Package1.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package1.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-04053: error occurred when validating remote object user.user@PRIMARY.SERVER ORA-00604: error occurred at recursive SQL level 1 ORA-16000: database open for read-only access
Inside that procedure call another procedure wich will decide need to go to primary via dblink or not. Try perform it.
SQL> begin user.Package2.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package2.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-16000: database open for read-only access
But i see the same error. I’m don’t understand what happen. We should go to primary via dblink from standby and shouldn’t to see any error about read-only access.
Ok, let’s try to see error stack on standby.
SQL> alter system set events '16000 trace name errorstack level 3'; System altered. SQL> begin user.Package1.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package1.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-04053: error occurred when validating remote object user.user@PRIMARY.SERVER ORA-00604: error occurred at recursive SQL level 1 ORA-16000: database open for read-only access
In trace.
*** 2013-04-22 16:33:52.444 *** SESSION ID:(2274.5) 2013-04-22 16:33:52.444 *** CLIENT ID:() 2013-04-22 16:33:52.444 *** SERVICE NAME:() 2013-04-22 16:33:52.444 *** MODULE NAME:(sqlplus@some.SERVER (TNS V1-V3)) 2013-04-22 16:33:52.444 *** ACTION NAME:() 2013-04-22 16:33:52.444 Managed Recovery: Real Time Apply enabled. Managed Recovery: THROUGH ALL SWITCHOVER posted. Managed Recovery: DISCONNECT posted. Managed Recovery: Startup posted. *** 2013-04-22 16:42:09.455 Managed Recovery: Cancel posted. *** 2013-04-22 16:42:46.890 Managed Recovery: Real Time Apply enabled. Managed Recovery: THROUGH ALL SWITCHOVER posted. Managed Recovery: DISCONNECT posted. Managed Recovery: Startup posted. *** 2013-04-22 16:47:45.544 KQRCMT: Write failed with error=604 po=0x196d592118 cid=8 diagnostics : cid=8 hash=808b698f flag=2a *** 2013-04-22 16:56:39.421 dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0) ----- Error Stack Dump ----- ORA-16000: database open for read-only access ----- Current SQL Statement for this session (sql_id=4yyb4104skrwj) ----- update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9,dataobj#=:10,flags=:11,oid$=:12,spare1=:13, spare2=:14 where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname is null and subname is null
Hmmm, i see attempt to update dictionary with objects. Now i’m understand why ORA-16000 error happened. Probably we have problem with shared_pool. Let’s try to flush it.
SQL> alter system flush shared_pool; System altered.
No effect. Hmmm, ok, let’s try perform that procedure on primary.
SQL> begin user.Package2.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package2.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-04062: timestamp of Package1 "user.Package1" has been changed ORA-06512: at "user.Package2", line 72 ORA-06512: at line 1
Wow!!! Timestamp of package is changed! Try to perform one more.
SQL> begin user.Package2.Procedure1(1130000010449084,null,null,null); end; 2 / PL/SQL procedure successfully completed. SQL> begin user.Package1.Procedure1(1130000010449084,null,null,null); end; 2 / PL/SQL procedure successfully completed.
Errors gone. Let’s try to perform on standby side.
SQL> begin user.Package2.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package2.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-06550: line 1, column 7: PLS-00201: identifier 'user.Package2' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored SQL> begin user.Package1.Procedure1(1130000010449084,null,null,null); end; 2 / begin user.Package1.Procedure1(1130000010449084,null,null,null); end; * ERROR at line 1: ORA-06550: line 1, column 7: PLS-00201: identifier 'user.Package1' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
I see other errors. Now standby like doesn’t know about our packages. I’m waited 10 min but nothing happened and i decided to restart instance 🙂
SQL> begin user.Package2.Procedure1(1130000010449084,null,null,null); end; 2 / PL/SQL procedure successfully completed. SQL> begin user.Package1.Procedure1(1130000010449084,null,null,null); end; 2 / PL/SQL procedure successfully completed.
After that all packages work brilliant!
Obviously something happen in shared_pool. Our packages based on timestamp.
Unfortunately i can’t recompile packages on primary because we have lot of load system and i could catch latches on packages like (library cache pin).
But i think if i could recompile packages, this error can be resolved with recompile.
Errors 16000 — 16999
Error | Severity | Description (Message Text) |
---|---|---|
16801 | 11 | sp_dropwebtask requires at least one defined parameter @outputfile or @procname. |
16802 | 11 | sp_dropwebtask cannot find the specified task. |
16803 | 11 | sp_runwebtask requires at least one defined parameter @outputfile or @procname. |
16804 | 11 | SQL Web Assistant: Could not establish a local connection to SQL Server. |
16805 | 11 | SQL Web Assistant: Could not execute the SQL statement. |
16806 | 11 | SQL Web Assistant: Could not bind the parameter to the SQL statement. |
16807 | 11 | SQL Web Assistant: Could not obtain a bind token. |
16808 | 11 | SQL Web Assistant: Could not find the existing trigger. This could be due to encryption. |
16809 | 11 | SQL Web Assistant failed on the call to SQLGetData. |
16810 | 11 | SQL Web Assistant failed on the call to SQLFetch. |
16811 | 11 | SQL Web Assistant failed to bind a results column. |
16812 | 11 | SQL Web Assistant: The @query parameter must be specified. |
16813 | 11 | SQL Web Assistant: Parameters can be passed either by name or position. |
16814 | 11 | SQL Web Assistant: Invalid parameter. |
16815 | 11 | SQL Web Assistant: @procname is not valid. |
16816 | 11 | SQL Web Assistant: @outputfile is not valid. |
16817 | 11 | SQL Web Assistant: Could not read the given file. |
16820 | 11 | SQL Web Assistant failed because the state of the Web task in msdb..MSwebtasks is invalid. |
16821 | 11 | SQL Web Assistant: Could not open the output file. |
16822 | 11 | SQL Web Assistant: Could not open the template file. |
16823 | 11 | SQL Web Assistant: Could not allocate enough memory to satisfy this request. |
16824 | 11 | SQL Web Assistant: The template file specified in the Web task has a bad size. |
16825 | 11 | SQL Web Assistant: Could not read the template file. |
16826 | 11 | SQL Web Assistant: Could not find the specified marker for data insertion in the template file. |
16827 | 11 | SQL Web Assistant: Could not write to the output file. |
16828 | 11 | SQL Web Assistant: @tabborder must be tinyint. |
16829 | 11 | SQL Web Assistant: @singlerow must be 0 or 1. Cannot specify this parameter with @nrowsperpage. |
16830 | 11 | SQL Web Assistant: The @blobfmt parameter specification is invalid. |
16831 | 11 | SQL Web Assistant: The output file name is mandatory for every column specified in the @blobfmt parameter. |
16832 | 11 | SQL Web Assistant: Procedure called with too many parameters. |
16833 | 11 | SQL Web Assistant: @nrowsperpage must be a positive number and it cannot be used with @singlerow. |
16834 | 11 | SQL Web Assistant: Read/write operation on text, ntext, or image column failed. |
16838 | 11 | SQL Web Assistant: Could not find the table in the HTML file. |
16839 | 11 | SQL Web Assistant: Could not find the matching end table tag in the HTML file. |
16841 | 11 | SQL Web Assistant: The @datachg parameter cannot be specified with the given @whentype value. |
16842 | 11 | SQL Web Assistant: Could not find and drop the necessary trigger for updating the Web page. |
16843 | 11 | SQL Web Assistant: Could not add the necessary trigger for the @datachg parameter. There could be an existing trigger on the table with missing or encrypted text. |
16844 | 11 | SQL Web Assistant: Incorrect syntax for the @datachg parameter. |
16845 | 11 | SQL Web Assistant: @datachg must be specified for the given @whentype option. |
16846 | 11 | SQL Web Assistant: @unittype and/or @numunits must be specified for the given @whentype option. |
16847 | 11 | SQL Web Assistant: @fixedfont must be 0 or 1. |
16848 | 11 | SQL Web Assistant: @bold must be 0 or 1. |
16849 | 11 | SQL Web Assistant: @italic must be 0 or 1. |
16850 | 11 | SQL Web Assistant: @colheaders must be 0 or 1. |
16851 | 11 | SQL Web Assistant: @lastupdated must be 0 or 1. |
16852 | 11 | SQL Web Assistant: @HTMLheader must be in the range 1 to 6. |
16853 | 11 | SQL Web Assistant: @username is not valid. |
16854 | 11 | SQL Web Assistant: @dbname is not valid. |
16855 | 11 | SQL Web Assistant: @whentype must be in the range 1 to 9. |
16856 | 11 | SQL Web Assistant: @unittype must be in the range 1 to 4. |
16857 | 11 | SQL Web Assistant: @targetdate is invalid. It must be a valid date after 1900-01-01. |
16858 | 11 | SQL Web Assistant: The @targettime parameter must be between 0 and 240000. |
16859 | 11 | SQL Web Assistant: @dayflags must be 1, 2, 4, 8, 16, 32, or 64. |
16860 | 11 | SQL Web Assistant: @numunits must be greater than 0. |
16861 | 11 | SQL Web Assistant: @targetdate must be specified for the given @whentype option. |
16862 | 11 | SQL Web Assistant: @dayflags must be specified for the given @whentype option. |
16863 | 11 | SQL Web Assistant: URL specification is invalid. |
16864 | 11 | SQL Web Assistant: @blobfmt is invalid. The file must include the full path to the output_file location. |
16865 | 11 | SQL Web Assistant: URL hyperlink text column must not be of the image data type. |
16866 | 11 | SQL Web Assistant: Could not obtain the number of columns in @query. |
16867 | 11 | SQL Web Assistant: URL hyperlink text column is missing in @query. |
16868 | 11 | SQL Web Assistant failed on the call to SQLColAttribute. |
16869 | 11 | SQL Web Assistant: Columns of data type image cannot have a template. |
16870 | 11 | SQL Web Assistant: Internal error. Could not read @ parameters. |
16871 | 11 | SQL Web Assistant: Invalid @charset. Execute sp_enumcodepages for a list of character sets. |
16873 | 11 | SQL Web Assistant: Invalid @codepage. Execute sp_enumcodepages for a list of code pages. |
16874 | 11 | SQL Web Assistant: Internal error. Cannot translate to the specified code page. |
16875 | 11 | SQL Web Assistant: Translation to the desired code page is unavailable on this system. |
16876 | 11 | SQL Web Assistant: Internal error. Could not obtain COM interface ID. |
16877 | 11 | SQL Web Assistant: Internal error. Could not obtain COM language ID. |
16878 | 11 | SQL Web Assistant: Internal error. Could not initialize COM library. |
16879 | 11 | SQL Web Assistant: Internal error. Could not translate from Unicode to the specified code page. |
16880 | 11 | SQL Web Assistant: Internal error. Could not create translation object. Make sure that the file MLang.dll is in your system directory. |
16881 | 16 | SQL Web Assistant: This version is not supported on Win32s of Windows 3.1. |
16882 | 16 | SQL Web Assistant: Web task not found. Verify the name of the task for possible errors. |
16883 | 16 | SQL Web Assistant: Could not list Web task parameters. xp_readwebtask requires @procname. |
16884 | 16 | SQL Web Assistant: Procedure name is required to convert Web tasks. |
16885 | 16 | SQL Web Assistant: Could not upgrade the Web task to 8.0. The Web task will remain in 6.5 format and will need to be re-created. |
16886 | 16 | SQL Web Assistant: Could not update Web tasks system table. The Web task remains in 6.5 format. |
16887 | 16 | SQL Web Assistant: @procname parameter is missing. The parameter is required to upgrade a Web task to 8.0. |
16888 | 16 | SQL Web Assistant: Source code page is not supported on the system. Ensure @charset and @codepage language files are installed on your system. |
16889 | 16 | SQL Web Assistant: Could not send Web task row to the client. |
16890 | 16 | SQL Web Assistant: ODS error occurred. Could not send Web task parameters. |
16901 | 16 | %hs: This feature has not been implemented yet. |
16902 | 16 | %hs: The value of parameter %hs is invalid. |
16903 | 16 | %hs procedure called with incorrect number of parameters. |
16904 | 16 | sp_cursor: optype: You can only specify ABSOLUTE in conjunction with DELETE or UPDATE. |
16905 | 16 | The cursor is already open. |
16907 | 16 | %hs is not allowed in cursor statements. |
16909 | 16 | %hs: The cursor identifier value provided (%x) is not valid. |
16911 | 16 | %hs: The fetch type %hs cannot be used with forward only cursors. |
16914 | 16 | %hs procedure called with too many parameters. |
16915 | 16 | A cursor with the name ‘%.*ls’ already exists. |
16916 | 16 | A cursor with the name ‘%.*ls’ does not exist. |
16917 | 16 | Cursor is not open. |
16922 | 16 | Cursor Fetch: Implicit conversion from data type %s to %s is not allowed. |
16924 | 16 | Cursorfetch: The number of variables declared in the INTO list must match that of selected columns. |
16925 | 16 | The fetch type %hs cannot be used with dynamic cursors. |
16926 | 16 | sp_cursoroption: The column ID (%d) does not correspond to a text, ntext, or image column. |
16927 | 16 | Cannot fetch into text, ntext, and image variables. |
16929 | 16 | The cursor is READ ONLY. |
16930 | 16 | The requested row is not in the fetch buffer. |
16931 | 16 | There are no rows in the current fetch buffer. |
16932 | 16 | The cursor has a FOR UPDATE list and the requested column to be updated is not in this list. |
16933 | 16 | The cursor does not include the table being modified or the table is not updatable through the cursor. |
16934 | 16 | Optimistic concurrency check failed. The row was modified outside of this cursor. |
16935 | 16 | No parameter values were specified for the sp_cursor-%hs statement. |
16936 | 16 | sp_cursor: One or more values parameters were invalid. |
16937 | 16 | A server cursor is not allowed on a remote stored procedure or stored procedure with more than one SELECT statement. Use a default result set or client cursor. |
16938 | 16 | sp_cursoropen/sp_cursorprepare: The statement parameter can only be a single select or a single stored procedure. |
16940 | 16 | Cannot specify UPDLOCK or TABLOCKX with READ ONLY or INSENSITIVE cursors. |
16941 | 16 | Cursor updates are not allowed on tables opened with the NOLOCK option. |
16942 | 16 | Could not generate asynchronous keyset. The cursor has been deallocated. |
16943 | 16 | Could not complete cursor operation because the table schema changed after the cursor was declared. |
16944 | 16 | Cannot specify UPDLOCK or TABLOCKX on a read-only table in a cursor. |
16945 | 16 | The cursor was not declared. |
16946 | 16 | Could not open the cursor because one or more of its tables have gone out of scope. |
16947 | 10 | No rows were updated or deleted. |
16948 | 16 | The variable ‘%.*ls’ is not a cursor variable, but it is used in a place where a cursor variable is expected. |
16949 | 16 | The variable ‘%.*ls’ is a cursor variable, but it is used in a place where a cursor variable is not valid. |
16950 | 10 | The variable ‘%.*ls’ does not currently have a cursor allocated to it. |
16951 | 16 | The variable ‘%.*ls’ cannot be used as a parameter because a CURSOR OUTPUT parameter must not have a cursor allocated to it before execution of the procedure. |
16952 | 16 | A cursor variable cannot be used as a parameter to a remote procedure call. |
16953 | 10 | Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor. |
16954 | 16 | Executing SQL directly; no cursor. |
16955 | 16 | Could not create an acceptable cursor. |
16956 | 10 | Cursor created was not of the requested type. |
16957 | 16 | FOR UPDATE cannot be specified on a READ ONLY cursor. |
16958 | 16 | Could not complete cursor operation because the set options have changed since the cursor was declared. |
16959 | 16 | Unique table computation failed. |
16960 | 16 | You have reached the maximum number of cursors allowed. |
16961 | 10 | One or more FOR UPDATE columns have been adjusted to the first instance of their table in the query. |
16962 | 16 | The target object type is not updatable through a cursor. |
16963 | 16 | You cannot specify scroll locking on a cursor that contains a remote table. |
16995 | 16 | %hs requires the NO_BROWSETABLE option to be set. |
16996 | 16 | %hs cannot take output parameters. |
16998 | 20 | Internal Cursor Error: A cursor work table operation failed. |
16999 | 20 | Internal Cursor Error: The cursor is in an invalid state. |
Users encountered this error when connecting to a version 11.1.0.7.0 replicated active data guard database via ODBC:
“Error Text ”[IBM][ODBC Oracle Wire Protocol driver][Oracle]
ORA-00604: error occurred at recursive SQL level 1 ORA-16000: database open for read-only access”.
The error has the following diagnostic information: SQL State ”HY000”
SQL Native Error Code ‘604’ SQL Error Text ”[IBM][ODBC Oracle Wire Protocol driver][Oracle]
ORA-00604: error occurred at recursive SQL level 1 ORA-16000: database open for read-only access””
I verified the error when trying to log in to the same database with identical user information.
Earlier in the day, I had examined that particular user’s information and privileges using a cloning script executed from the primary database in the data guard pair. This script has been used numerous times before in other environments without modifying the database it was executed against as it only performs ‘select’ queries.
I checked the replication status on the primary and replicated environment with several queries. The queries and their output are as follows:
Executed against the primary database:
select name
from v$database;
select sequence#, applied
from v$archived_log
where trunc(first_time) = trunc(sysdate)
order by 1;
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Mar 19 16:16:44 2015 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SEQUENCE# APPLIED ---------- --------- 16863 NO 16863 YES 16864 NO 16864 YES 16865 NO 16865 YES 16866 NO 16866 YES 16867 NO 16867 YES 45 rows selected.
NOTE – Each set of archived log has two application entries – one for the primary itself which is always a value of ‘NO’ for applied in this view and the other for the replicated environment. Since the value of the latest archived log is ‘YES’, this log has been applied to the replicated (secondary) database.
These next queries are executed against the replicated (secondary) database:
select sequence#, applied
from v$archived_log
where trunc(first_time) = trunc(sysdate)
order by 1;
select process, sequence#, status
from v$managed_standby;
SEQUENCE# APPLIED ---------- --------- 16863 YES 16864 YES 16865 YES 16866 YES 16867 YES 15 rows selected. PROCESS SEQUENCE# STATUS --------- ---------- ------------ ARCH 16867 CLOSING ARCH 0 CONNECTED ARCH 16865 CLOSING ARCH 16866 CLOSING MRP0 16868 WAIT_FOR_LOG RFS 0 IDLE RFS 0 IDLE RFS 16868 IDLE RFS 0 IDLE 9 rows selected. SQL> Disconnected from Oracle Database 11g Enterprise Edition Release SQL> 11.1.0.7.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
The first query is simply verifying that the archived logs have been applied. The second query let’s me know what the data guard processes are doing. Looks like its waiting for the next log from the primary.
My next thought was to restart the replication process on the replicated database, but since this database was already in sync, this action would likely have done no good. I thought next to refresh the password of the user using the output obtained from the earlier execution of the cloning script I mentioned. I simply executed an ‘alter user’ statement on the primary changing the user’s password to the same value it currently was. I then executed ‘alter system switch logfile’ a few times to ensure propagation of the change to the replicated environment. This fixed the problem. Post-problem research did not yield any similar situations, possible causes, or bugs. I guess I will have to be satisfied with being able to fix this the next time it happens.
The contents of the user cloning script are included here for reference. This script has proven very useful and has been proven in versions from 10.2.0.4.0 to 11.2.0.4.0.
-- userclone.sql -- 10/17/00 J. Adams -- Purpose: Generates a SQL script to create a new user -- based on the priviledges of another user -- -- Based upon this script... -- Date Created: June 20, 2000 -- Author: Mark Huber -- Modified - -- 4/24/02 J. Adams - Corrected erroneous quota grant statement -- 7/14/03 J. Adams - Modified erroneous role section (there is no -- 1 or 0 in the admin_option column). -- 6/3/05 J. Adams - Fixed problem with object privileges not being displayed. -- 12/5/05 J. Adams - Altered script to obtain password of original user for cloned user. -- 10/13/09 J. Adams - Altered create user query to include Oracle version 11g clear screen; clear breaks; clear buffer; set verify off; set heading off; set feedback off; set linesize 150; Accept user_in prompt "Enter the USER To create LIKE ..... " Accept new_user_in prompt "Enter the NEW USER To create ..... " --Accept new_user_pw_in prompt "Enter the NEW USER Password ..... " Accept outfile prompt "Enter the Output filename including path: " col username noprint; col lne newline; spool &&outfile col username noprint col lne newline -- ** create user SELECT username, 'CREATE USER '||UPPER('&&new_user_in')||' '|| DECODE(nvl(a.password,spare4), 'EXTERNAL', 'IDENTIFIED EXTERNALLY', 'IDENTIFIED BY VALUES '||''''||nvl(a.password,spare4)||''''||' ') lne, 'DEFAULT TABLESPACE '||b.default_tablespace lne, 'TEMPORARY TABLESPACE '||b.temporary_tablespace||';' lne FROM sys.USER$ a, dba_users b where a.name = b.username AND USERNAME = UPPER('&&user_in') / -- **create users tablespace quotas SELECT username, 'ALTER USER '||upper('&&new_user_in')||' QUOTA '|| DECODE(MAX_BYTES, -1, 'UNLIMITED', TO_CHAR(ROUND(MAX_BYTES/1024))||'K') ||' ON '||tablespace_name||';' FROM DBA_TS_QUOTAS WHERE USERNAME = UPPER('&&user_in') / -- ** create user roles select grantee username, 'Grant '||GRANTED_ROLE||' to'||' '|| upper('&&new_user_in')||' '|| DECODE(admin_option,NULL,null||';', 'NO',null||';', 'YES',' WITH GRANT OPTION;', null||';') from dba_role_privs where grantee = upper('&&user_in') / -- ** create user system privs SELECT 'Grant '||C.Name||' to'||' '|| upper('&&new_user_in')||' '|| DECODE(B.Option$,NULL,null||';', 0,null||';', 1,' WITH GRANT OPTION;', null||';') FROM SYS.SYSAUTH$ B , SYSTEM_PRIVILEGE_MAP C , SYS.USER$ D WHERE D.Name = upper('&&user_in') AND D.User# = B.Grantee# AND B.Privilege# = C.Privilege / -- ** create object privs SELECT 'Grant '||C.Name||' ON '|| A.Owner||'.'||A.Object_name|| ' TO '||upper('&&new_user_in')|| DECODE(B.Option$,NULL,null||';', 0,null||';', 1,' WITH GRANT OPTION;', null||';') FROM ALL_OBJECTS A , SYS.OBJAUTH$ B , TABLE_PRIVILEGE_MAP C , SYS.USER$ D WHERE D.Name = upper('&&user_in') AND D.User# = B.Grantee# AND A.Object_Id = B.Obj# AND B.Privilege# = C.Privilege / -- Create any synonyms owned by cloned user select 'create synonym '||upper('&&new_user_in')||'.'||synonym_name||' for '|| table_owner||'.'||table_name||';' from dba_synonyms where owner = upper('&&user_in') order by synonym_name / spool off; set verify on; set heading on; set feedback on;