on ‎2012 Feb 07 8:50 PM
When trying to correct DB2 DB Deadlocks on VBDATA using saptools procedure (SAP Note1430621) we received the following error from the db2 command prompt
db2 => call saptools.online_table_move('SAPWAD','VBDATA','WAD#VBDATAD','WAD#VBDATAI','','','','','"VBKEY" VARCHAR(96) NOT NULL WITH DEFAULT '' '' ,"VBMODCNT" INTEGER NOT NULL WITH DEFAULT 0 ,"VBBLKNO" INTEGER NOT NULL WITH DEFAULT 0 ,"VBLEN" SMALLINT NOT NULL WITH DEFAULT 0 ,"VBDATA" VARCHAR(30000) FOR BIT DATA ','MOVE');
SQL0440N No authorized routine named "SAPTOOLS.ONLINE_TABLE_MOVE" of type
"PROCEDURE" having compatible arguments was found. SQLSTATE=42884
and when using the same syntax within a .sql script receive the error:
jq03a010:db2wad 58> ./onlinemove.sql
./onlinemove.sql: Syntax error at line 1: `(' not expected.
Instead of having to use the ADMIN_TABLE_MOVE procedure, can we use DB6CONV to move special flag "VBDATA" VARCHAR(30000) FOR BIT DATA ', as shown in the script below:
call saptools.online_table_move(
'SAPWAD',
'VBDATA',
'WAD#VBDATAD',
'WAD#VBDATAI',
'',
'',
'',
'',
'"VBKEY" VARCHAR(96) NOT NULL WITH DEFAULT '' '' ,
"VBMODCNT" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBBLKNO" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBLEN" SMALLINT NOT NULL WITH DEFAULT 0 ,
"VBDATA" VARCHAR(30000) FOR BIT DATA ',
'MOVE')
;
Request clarification before answering.
Hi Natasha,
as you have V9.7, you should use the admin_move_table instead of the online_table_move.
For the admin_move_table the command needs to be changed a little bit:
call sysproc.admin_move_table
('SAPWAD','VBDATA',
'WAD#VBDATAD',
'WAD#VBDATAI','','','','',
'"VBKEY" VARCHAR(96) NOT NULL WITH DEFAULT '' '' ,
"VBMODCNT" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBBLKNO" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBLEN" SMALLINT NOT NULL WITH DEFAULT 0 ,
"VBDATA" VARCHAR(30000) FOR BIT DATA ',
' ', 'MOVE');
The main different is the empty ' ' before 'MOVE'.
Let us know if it works
Best Regards
Carola
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Carola,
This looks to be the correct syntax!!! However, I received this error now:
call sysproc.admin_move_table ('SAPWAD','VBDATA', 'WAD#VBDATAD', 'WAD#VBDATAI','','','','', '"VBKEY" VARCHAR(96) NOT NULL WITH DEFAULT '' '' , "VBMODCNT" INTEGER NOT NULL WITH DEFAULT 0 , "VBBLKNO" INTEGER NOT NULL WITH DEFAULT 0 , "VBLEN" SMALLINT NOT NULL WITH DEFAULT 0 , "VBDATA" VARCHAR(30000) FOR BIT DATA ', ' ', 'MOVE')
SQL2105N The ADMIN_MOVE_TABLE procedure could not be completed because a
prerequisite for running the procedure was not satisfied. Reason code: "24".
SQLSTATE=5UA0M
All the IBM links to the SQL2105N error can't be displayed, therefore not sure what prerequisite I am missing.
Thanks for all your help!
Hi,
the long tablespace parameter needs to be filled.
call sysproc.admin_move_table
('SAPWAD','VBDATA',
'WAD#VBDATAD',
'WAD#VBDATAI',
'WAD#VBDATAD','','','',
'"VBKEY" VARCHAR(96) NOT NULL WITH DEFAULT '' '' ,
"VBMODCNT" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBBLKNO" INTEGER NOT NULL WITH DEFAULT 0 ,
"VBLEN" SMALLINT NOT NULL WITH DEFAULT 0 ,
"VBDATA" VARCHAR(30000) FOR BIT DATA ',
' ', 'MOVE');
should do the trick. If you need help with a DB2 error code use:
db2 " ? SQL2105N "
Regards
Frank
| User | Count |
|---|---|
| 8 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.