<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Alex' Blog</title>
	<atom:link href="http://alex.hoeck.org/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://alex.hoeck.org</link>
	<description>Hier gibts' alles, was mir so einfällt.</description>
	<lastBuildDate>Tue, 17 Mar 2009 09:57:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on Reset von Oracle Sequences by Alex&#8217; Blog&#187; Blog Archive &#187; Reset Oracle Sequence to a lower value.</title>
		<link>http://alex.hoeck.org/startseite/reset-von-oracle-sequences/comment-page-1/#comment-454</link>
		<dc:creator>Alex&#8217; Blog&#187; Blog Archive &#187; Reset Oracle Sequence to a lower value.</dc:creator>
		<pubDate>Tue, 17 Mar 2009 09:57:16 +0000</pubDate>
		<guid isPermaLink="false">http://alex.hoeck.org/?page_id=19#comment-454</guid>
		<description>[...] Deutsche Version [...]</description>
		<content:encoded><![CDATA[<p>[...] Deutsche Version [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Reset Oracle Sequence to a lower value. by Alex</title>
		<link>http://alex.hoeck.org/2009/01/reset-oracle-sequence-to-a-lower-value/comment-page-1/#comment-453</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Mon, 16 Mar 2009 12:38:31 +0000</pubDate>
		<guid isPermaLink="false">http://alex.hoeck.org/?p=22#comment-453</guid>
		<description>Hi!

Possibly it&#039;s because you don&#039;t really fetch a row from your cursor while calling the seq.nextval. I&#039;m not sure how this is handelt by the DBMS_SQL package.

Try to change

 sqlstm := ’select ‘&#124;&#124;seqname&#124;&#124;’.nextval from dual’;
 utl_file.put_line(logfile,sqlstm);
 exec(sqlstm, logfile);

to something like:

  cid := dbms_sql.open_cursor;
  dbms_sql.parse(cid, ’select ‘&#124;&#124;seqname&#124;&#124;’.nextval from dual’, dbms_sql.v7);
  if dbms_sql.execute_and_fetch(cid)1 then dbms_sql.close_cursor(cid); raise some_exception; end if;
  dbms_sql.close_cursor(cid);

in your resetSequence procedure. I think the execute alone will just verify your SQL-code. If this also will not work, try to output the value, the seq.nextval returns to see if it increments by 1 or by n. Another idea I have is to turn off the caching, if it increments by 1 it possibly comes from cache and you first have to empty the sequences cache.


Hope it helps,

Alex</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>Possibly it&#8217;s because you don&#8217;t really fetch a row from your cursor while calling the seq.nextval. I&#8217;m not sure how this is handelt by the DBMS_SQL package.</p>
<p>Try to change</p>
<p> sqlstm := ’select ‘||seqname||’.nextval from dual’;<br />
 utl_file.put_line(logfile,sqlstm);<br />
 exec(sqlstm, logfile);</p>
<p>to something like:</p>
<p>  cid := dbms_sql.open_cursor;<br />
  dbms_sql.parse(cid, ’select ‘||seqname||’.nextval from dual’, dbms_sql.v7);<br />
  if dbms_sql.execute_and_fetch(cid)1 then dbms_sql.close_cursor(cid); raise some_exception; end if;<br />
  dbms_sql.close_cursor(cid);</p>
<p>in your resetSequence procedure. I think the execute alone will just verify your SQL-code. If this also will not work, try to output the value, the seq.nextval returns to see if it increments by 1 or by n. Another idea I have is to turn off the caching, if it increments by 1 it possibly comes from cache and you first have to empty the sequences cache.</p>
<p>Hope it helps,</p>
<p>Alex</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Reset Oracle Sequence to a lower value. by nn</title>
		<link>http://alex.hoeck.org/2009/01/reset-oracle-sequence-to-a-lower-value/comment-page-1/#comment-452</link>
		<dc:creator>nn</dc:creator>
		<pubDate>Mon, 16 Mar 2009 07:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://alex.hoeck.org/?p=22#comment-452</guid>
		<description>more specifically 

#!/bin/ksh

LOGFILE=/tmp/sequence.log
echo &quot;Log file : $LOGFILE&quot;
&gt;${LOGFILE}

DBLOGIN=&quot;dacscan&quot;
DBPASSWD=&quot;mnc&quot;
host_name=`hostname`

function check_all_function
{

echo &quot; checking all sequences &quot; &#124; tee -a ${LOGFILE}
echo &quot;check_all_sequences::start&quot; &#124; tee -a ${LOGFILE}
#stat=sqlplus ${DBLOGIN}/${DBPASSWD} &lt;${LOGFILE}
sqlplus -s dacscan/mnc &lt;&lt;!

CREATE OR REPLACE PROCEDURE exec
(string1 IN varchar2,
 logfile IN utl_file.file_type
) AS
    cur_id INTEGER;
    ret number;
BEGIN
   cur_id := DBMS_SQL.OPEN_CURSOR;
   DBMS_SQL.PARSE(cur_id,string1 , DBMS_SQL.native);
   ret := DBMS_SQL.EXECUTE(cur_id);
   DBMS_SQL.CLOSE_CURSOR(cur_id);
   utl_file.put_line(logfile,&#039;procedure exec ret value is &#039;&#124;&#124;ret);
        return;
EXCEPTION
   when OTHERS then
        utl_file.put_line(logfile,&#039;Error occured in procedure exec &#039;&#124;&#124;SQLCODE&#124;&#124;SQLERRM);
END;
/
show errors


create or replace procedure resetsequence
(seqname IN  varchar2,
v_diff  IN  number,
 logfile IN  utl_file.file_type
)
as
        sqlstm  varchar2(200);
BEGIN
        utl_file.put_line(logfile,&#039;sequence name  difference : &#039;);

        sqlstm := &#039;alter sequence &#039;&#124;&#124;seqname&#124;&#124;&#039; increment by &#039;&#124;&#124;v_diff;
        utl_file.put_line(logfile,sqlstm);
        exec(sqlstm, logfile);
        sqlstm := &#039;select &#039;&#124;&#124;seqname&#124;&#124;&#039;.nextval from dual&#039;;
        utl_file.put_line(logfile,sqlstm);
        exec(sqlstm, logfile);
        sqlstm := &#039;alter sequence &#039;&#124;&#124;seqname&#124;&#124;&#039; increment by 1&#039;;
        utl_file.put_line(logfile,sqlstm);
        exec(sqlstm, logfile);
EXCEPTION
        when OTHERS then
                utl_file.put_line(logfile,&#039;Error occured in procedure resetsequence &#039;&#124;&#124;SQLCODE&#124;&#124;SQLERRM);

END;
/
show errors

create or replace procedure check_all_sequences
(
host_name IN varchar2
)as
logfile         utl_file.file_type;
curr_val        number(10);
next_val        number(10);
diff            number(10);
curr_val_tmp    varchar2(20);

begin

   logfile := utl_file.fopen(&#039;/tmp&#039;,&#039;sequence.log&#039;,&#039;W&#039;);
   UTL_FILE.PUT_LINE(logfile,&#039;Start Processing &#039;);

   utl_file.put_line(logfile,&#039;Processing DL_CKT_REL_ID sequence for table DL_CKT_REL&#039;);
   select max(DL_CKT_REL_ID) into curr_val from DL_CKT_REL;
   select DL_CKT_REL_ID.nextval into next_val from dual;
        utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
        utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
        if(diff &gt;= 0)
   then
        resetsequence(&#039;DL_CKT_REL_ID&#039;,diff,logfile);
   end if;


   utl_file.fclose(logfile);
END;
/
show errors

!echo &quot;check_all_sequences::end&quot;

execute check_all_sequences(&#039;$host_name&#039;);
!
}

check_all_function
----------------------------------------------------------------

log file:

Start Processing
Processing DL_CKT_REL_ID sequence for table DL_CKT_REL
max in table :22 nextval:15
difference:7
sequence name  difference : 
alter sequence DL_CKT_REL_ID increment by 7
procedure exec ret value is 0
select DL_CKT_REL_ID.nextval from dual
procedure exec ret value is 0
alter sequence DL_CKT_REL_ID increment by 1
procedure exec ret value is 0
---------------------------------------------------------
log for the second time 

Start Processing
Processing DL_CKT_REL_ID sequence for table DL_CKT_REL
max in table :22 nextval:16
difference:6
sequence name  difference : 
alter sequence DL_CKT_REL_ID increment by 6
procedure exec ret value is 0
select DL_CKT_REL_ID.nextval from dual
procedure exec ret value is 0
alter sequence DL_CKT_REL_ID increment by 1
procedure exec ret value is 0
-----------------------------------

but the sequcence is not incrementing by the difference .....

pleaswe reply ASAP</description>
		<content:encoded><![CDATA[<p>more specifically </p>
<p>#!/bin/ksh</p>
<p>LOGFILE=/tmp/sequence.log<br />
echo &#8220;Log file : $LOGFILE&#8221;<br />
&gt;${LOGFILE}</p>
<p>DBLOGIN=&#8221;dacscan&#8221;<br />
DBPASSWD=&#8221;mnc&#8221;<br />
host_name=`hostname`</p>
<p>function check_all_function<br />
{</p>
<p>echo &#8221; checking all sequences &#8221; | tee -a ${LOGFILE}<br />
echo &#8220;check_all_sequences::start&#8221; | tee -a ${LOGFILE}<br />
#stat=sqlplus ${DBLOGIN}/${DBPASSWD} &lt;${LOGFILE}<br />
sqlplus -s dacscan/mnc &lt;&lt;!</p>
<p>CREATE OR REPLACE PROCEDURE exec<br />
(string1 IN varchar2,<br />
 logfile IN utl_file.file_type<br />
) AS<br />
    cur_id INTEGER;<br />
    ret number;<br />
BEGIN<br />
   cur_id := DBMS_SQL.OPEN_CURSOR;<br />
   DBMS_SQL.PARSE(cur_id,string1 , DBMS_SQL.native);<br />
   ret := DBMS_SQL.EXECUTE(cur_id);<br />
   DBMS_SQL.CLOSE_CURSOR(cur_id);<br />
   utl_file.put_line(logfile,&#8217;procedure exec ret value is &#8216;||ret);<br />
        return;<br />
EXCEPTION<br />
   when OTHERS then<br />
        utl_file.put_line(logfile,&#8217;Error occured in procedure exec &#8216;||SQLCODE||SQLERRM);<br />
END;<br />
/<br />
show errors</p>
<p>create or replace procedure resetsequence<br />
(seqname IN  varchar2,<br />
v_diff  IN  number,<br />
 logfile IN  utl_file.file_type<br />
)<br />
as<br />
        sqlstm  varchar2(200);<br />
BEGIN<br />
        utl_file.put_line(logfile,&#8217;sequence name  difference : &#8216;);</p>
<p>        sqlstm := &#8216;alter sequence &#8216;||seqname||&#8217; increment by &#8216;||v_diff;<br />
        utl_file.put_line(logfile,sqlstm);<br />
        exec(sqlstm, logfile);<br />
        sqlstm := &#8216;select &#8216;||seqname||&#8217;.nextval from dual&#8217;;<br />
        utl_file.put_line(logfile,sqlstm);<br />
        exec(sqlstm, logfile);<br />
        sqlstm := &#8216;alter sequence &#8216;||seqname||&#8217; increment by 1&#8242;;<br />
        utl_file.put_line(logfile,sqlstm);<br />
        exec(sqlstm, logfile);<br />
EXCEPTION<br />
        when OTHERS then<br />
                utl_file.put_line(logfile,&#8217;Error occured in procedure resetsequence &#8216;||SQLCODE||SQLERRM);</p>
<p>END;<br />
/<br />
show errors</p>
<p>create or replace procedure check_all_sequences<br />
(<br />
host_name IN varchar2<br />
)as<br />
logfile         utl_file.file_type;<br />
curr_val        number(10);<br />
next_val        number(10);<br />
diff            number(10);<br />
curr_val_tmp    varchar2(20);</p>
<p>begin</p>
<p>   logfile := utl_file.fopen(&#8216;/tmp&#8217;,'sequence.log&#8217;,'W&#8217;);<br />
   UTL_FILE.PUT_LINE(logfile,&#8217;Start Processing &#8216;);</p>
<p>   utl_file.put_line(logfile,&#8217;Processing DL_CKT_REL_ID sequence for table DL_CKT_REL&#8217;);<br />
   select max(DL_CKT_REL_ID) into curr_val from DL_CKT_REL;<br />
   select DL_CKT_REL_ID.nextval into next_val from dual;<br />
        utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
        utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
        if(diff &gt;= 0)<br />
   then<br />
        resetsequence(&#8216;DL_CKT_REL_ID&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.fclose(logfile);<br />
END;<br />
/<br />
show errors</p>
<p>!echo &#8220;check_all_sequences::end&#8221;</p>
<p>execute check_all_sequences(&#8216;$host_name&#8217;);<br />
!<br />
}</p>
<p>check_all_function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>log file:</p>
<p>Start Processing<br />
Processing DL_CKT_REL_ID sequence for table DL_CKT_REL<br />
max in table :22 nextval:15<br />
difference:7<br />
sequence name  difference :<br />
alter sequence DL_CKT_REL_ID increment by 7<br />
procedure exec ret value is 0<br />
select DL_CKT_REL_ID.nextval from dual<br />
procedure exec ret value is 0<br />
alter sequence DL_CKT_REL_ID increment by 1<br />
procedure exec ret value is 0<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
log for the second time </p>
<p>Start Processing<br />
Processing DL_CKT_REL_ID sequence for table DL_CKT_REL<br />
max in table :22 nextval:16<br />
difference:6<br />
sequence name  difference :<br />
alter sequence DL_CKT_REL_ID increment by 6<br />
procedure exec ret value is 0<br />
select DL_CKT_REL_ID.nextval from dual<br />
procedure exec ret value is 0<br />
alter sequence DL_CKT_REL_ID increment by 1<br />
procedure exec ret value is 0<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>but the sequcence is not incrementing by the difference &#8230;..</p>
<p>pleaswe reply ASAP</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Reset Oracle Sequence to a lower value. by nn</title>
		<link>http://alex.hoeck.org/2009/01/reset-oracle-sequence-to-a-lower-value/comment-page-1/#comment-451</link>
		<dc:creator>nn</dc:creator>
		<pubDate>Mon, 16 Mar 2009 06:38:36 +0000</pubDate>
		<guid isPermaLink="false">http://alex.hoeck.org/?p=22#comment-451</guid>
		<description>hi i have written a code below.
but the alter sequence is not being executed ... but the return value is 0
kindly check

#!/bin/ksh

LOGFILE=/tmp/sequence.log
echo &quot;Log file : $LOGFILE&quot;
&gt;${LOGFILE}

DBLOGIN=&quot;dacscan&quot;
DBPASSWD=&quot;mnc&quot;
host_name=`hostname`

function check_all_function 
{

echo &quot; checking all sequences &quot; &#124; tee -a ${LOGFILE}
echo &quot;check_all_sequences::start&quot; &#124; tee -a ${LOGFILE}
#stat=sqlplus ${DBLOGIN}/${DBPASSWD} &lt;${LOGFILE}
sqlplus -s dacscan/mnc &lt;&lt;!

CREATE OR REPLACE PROCEDURE exec
(STRING IN varchar2,
 logfile IN utl_file.file_type
) AS
    cursor_name number;
    ret INTEGER;
BEGIN
   cursor_name := DBMS_SQL.OPEN_CURSOR;
   DBMS_SQL.PARSE(cursor_name, string, DBMS_SQL.native);
   ret := DBMS_SQL.EXECUTE(cursor_name);
   DBMS_SQL.CLOSE_CURSOR(cursor_name);
   utl_file.put_line(logfile,&#039;procedure exec ret value is &#039;&#124;&#124;ret);
EXCEPTION
   when OTHERS then
	utl_file.put_line(logfile,&#039;Error occured in procedure exec &#039;&#124;&#124;SQLCODE&#124;&#124;SQLERRM);
END;
/
show errors


create or replace procedure resetsequence
(seqname IN  varchar2,
 v_diff  IN  number,
 logfile IN  utl_file.file_type
)
as
	sqlstm	varchar2(200);
BEGIN
	utl_file.put_line(logfile,&#039;sequence name  difference : &#039;);
	
	sqlstm := &#039;alter sequence &#039;&#124;&#124;seqname&#124;&#124;&#039; increment by &#039;&#124;&#124;v_diff;
	utl_file.put_line(logfile,sqlstm);
	exec(sqlstm, logfile);
	commit;

	sqlstm := &#039;select &#039;&#124;&#124;seqname&#124;&#124;&#039;.nextval from dual&#039;;
	utl_file.put_line(logfile,sqlstm);
	exec(sqlstm, logfile);

	sqlstm := &#039;alter sequence &#039;&#124;&#124;seqname&#124;&#124;&#039; increment by 1&#039;;
 	utl_file.put_line(logfile,sqlstm);	
	exec(sqlstm, logfile);
	commit;
EXCEPTION
	when OTHERS then
		utl_file.put_line(logfile,&#039;Error occured in procedure resetsequence &#039;&#124;&#124;SQLCODE&#124;&#124;SQLERRM);
	commit;
END;
/
show errors

create or replace procedure check_all_sequences
(
host_name IN varchar2
)as
logfile		utl_file.file_type;
curr_val	number(10);
next_val	number(10);
diff		number(10);
curr_val_tmp	varchar2(20);

begin

   logfile := utl_file.fopen(&#039;/tmp&#039;,&#039;sequence.log&#039;,&#039;W&#039;);
   UTL_FILE.PUT_LINE(logfile,&#039;Start Processing &#039;);

   utl_file.put_line(logfile,&#039;Processing WRKLOGKEY sequence for table worklog&#039;);
   select max(wrklogkey) into curr_val from worklog;
   select wrklogkey.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;WRKLOGKEY&#039;,diff,logfile);
   end if;

   utl_file.put_line(logfile,&#039;Processing areakey sequence for table arearef &#039;);
   select max(areakey) into curr_val from arearef;
   select areakey.nextval into next_val from dual;
   utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
	diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;AREAKEY&#039;,diff,logfile);
   end if;

   utl_file.put_line(logfile,&#039;Processing NM_SB_SNC_ID sequence for table SB_SNC_PORTS&#039;);
   select max(NM_SB_SNC_ID) into curr_val from SB_SNC_PORTS;	
   select NM_SB_SNC_ID.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
 	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff); 
 	if(diff &gt;= 0)
   then
	resetsequence(&#039;NM_SB_SNC_ID&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing SB_SNET_KEY sequence for table SB_EMS_SUBNET&#039;);
   select max(sb_snet_key) into curr_val from SB_EMS_SUBNET;	
   select sb_snet_key.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;sb_snet_key&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing SUBMAPKEY sequence for table SUBMAPREF&#039;);
   select max(SUBMAPKEY) into curr_val from SUBMAPREF;	
   select SUBMAPKEY.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;SUBMAPKEY&#039;,diff,logfile);
   end if;

   utl_file.put_line(logfile,&#039;Processing TRENCHCODE sequence for table TRENCH_INFO&#039;);
   select max(TRENCHCODE) into curr_val from TRENCH_INFO;		
   select TRENCHCODE.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;TRENCHCODE&#039;,diff,logfile);
   end if;

   utl_file.put_line(logfile,&#039;Processing WRKGRP_KEY sequence for table WORKGRPS&#039;);
   select max(WRKGRP_KEY) into curr_val from WORKGRPS;		
   select WRKGRP_KEY.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;WRKGRP_KEY&#039;,diff,logfile);
   end if;


--  utl_file.put_line(logfile,&#039;Processing AUTO_MERGE_ID sequence for table AUTO_MERGE_CIRCUIT&#039;);
  -- select max(AUTO_MERGE_ID) into curr_val from AUTO_MERGE_CIRCUIT;		
 -- select AUTO_MERGE_ID.nextval into next_val from dual;
   --diff := curr_val - next_val;
   --if(diff &gt;= 0)
   --then
--	resetsequence(&#039;AUTO_MERGE_ID&#039;,diff,logfile);
  -- end if;


   utl_file.put_line(logfile,&#039;Processing CACNUM sequence for table FACODR&#039;);
   select max(substr(CAC,2)) into curr_val_tmp from FACODR;
   --curr_val := substr(curr_val_tmp,2);
   select CACNUM.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;CACNUM&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing DL_CKT_REL_ID sequence for table DL_CKT_REL&#039;);
   select max(DL_CKT_REL_ID) into curr_val from DL_CKT_REL;		
   select DL_CKT_REL_ID.nextval into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
	if(diff &gt;= 0)
   then
	resetsequence(&#039;DL_CKT_REL_ID&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing FMLAYOUT sequence for table FACODR&#039;);
   select max(LAYOUT) into curr_val from FACODR;		
   select FMLAYOUT.nextval into next_val from dual;
	 utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;FMLAYOUT&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing GRPKEY sequence for table FACODR&#039;);
   select nvl(max(GRPKEY),0) into curr_val from FACODR;		
   select GRPKEY.nextval into next_val from dual;
	 utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;GRPKEY&#039;,diff,logfile);
   end if;


   utl_file.put_line(logfile,&#039;Processing CLONUM sequence for table FACODR&#039;);
   select max(substr(clo,4)) into curr_val from FACODR;		
   select ((CLONUM.nextval * 1000) + 1) into next_val from dual;
	utl_file.put_line(logfile,&#039;max in table :&#039;&#124;&#124;curr_val&#124;&#124;&#039; nextval:&#039;&#124;&#124;next_val);
   diff := curr_val - next_val;
	utl_file.put_line(logfile,&#039;difference:&#039;&#124;&#124;diff);
   if(diff &gt;= 0)
   then
	resetsequence(&#039;CLONUM&#039;,diff,logfile);
   end if;

   utl_file.fclose(logfile);
END;
/
show errors

!echo &quot;check_all_sequences::end&quot;

execute check_all_sequences(&#039;$host_name&#039;);
!
}

check_all_function</description>
		<content:encoded><![CDATA[<p>hi i have written a code below.<br />
but the alter sequence is not being executed &#8230; but the return value is 0<br />
kindly check</p>
<p>#!/bin/ksh</p>
<p>LOGFILE=/tmp/sequence.log<br />
echo &#8220;Log file : $LOGFILE&#8221;<br />
&gt;${LOGFILE}</p>
<p>DBLOGIN=&#8221;dacscan&#8221;<br />
DBPASSWD=&#8221;mnc&#8221;<br />
host_name=`hostname`</p>
<p>function check_all_function<br />
{</p>
<p>echo &#8221; checking all sequences &#8221; | tee -a ${LOGFILE}<br />
echo &#8220;check_all_sequences::start&#8221; | tee -a ${LOGFILE}<br />
#stat=sqlplus ${DBLOGIN}/${DBPASSWD} &lt;${LOGFILE}<br />
sqlplus -s dacscan/mnc &lt;&lt;!</p>
<p>CREATE OR REPLACE PROCEDURE exec<br />
(STRING IN varchar2,<br />
 logfile IN utl_file.file_type<br />
) AS<br />
    cursor_name number;<br />
    ret INTEGER;<br />
BEGIN<br />
   cursor_name := DBMS_SQL.OPEN_CURSOR;<br />
   DBMS_SQL.PARSE(cursor_name, string, DBMS_SQL.native);<br />
   ret := DBMS_SQL.EXECUTE(cursor_name);<br />
   DBMS_SQL.CLOSE_CURSOR(cursor_name);<br />
   utl_file.put_line(logfile,&#8217;procedure exec ret value is &#8216;||ret);<br />
EXCEPTION<br />
   when OTHERS then<br />
	utl_file.put_line(logfile,&#8217;Error occured in procedure exec &#8216;||SQLCODE||SQLERRM);<br />
END;<br />
/<br />
show errors</p>
<p>create or replace procedure resetsequence<br />
(seqname IN  varchar2,<br />
 v_diff  IN  number,<br />
 logfile IN  utl_file.file_type<br />
)<br />
as<br />
	sqlstm	varchar2(200);<br />
BEGIN<br />
	utl_file.put_line(logfile,&#8217;sequence name  difference : &#8216;);</p>
<p>	sqlstm := &#8216;alter sequence &#8216;||seqname||&#8217; increment by &#8216;||v_diff;<br />
	utl_file.put_line(logfile,sqlstm);<br />
	exec(sqlstm, logfile);<br />
	commit;</p>
<p>	sqlstm := &#8216;select &#8216;||seqname||&#8217;.nextval from dual&#8217;;<br />
	utl_file.put_line(logfile,sqlstm);<br />
	exec(sqlstm, logfile);</p>
<p>	sqlstm := &#8216;alter sequence &#8216;||seqname||&#8217; increment by 1&#8242;;<br />
 	utl_file.put_line(logfile,sqlstm);<br />
	exec(sqlstm, logfile);<br />
	commit;<br />
EXCEPTION<br />
	when OTHERS then<br />
		utl_file.put_line(logfile,&#8217;Error occured in procedure resetsequence &#8216;||SQLCODE||SQLERRM);<br />
	commit;<br />
END;<br />
/<br />
show errors</p>
<p>create or replace procedure check_all_sequences<br />
(<br />
host_name IN varchar2<br />
)as<br />
logfile		utl_file.file_type;<br />
curr_val	number(10);<br />
next_val	number(10);<br />
diff		number(10);<br />
curr_val_tmp	varchar2(20);</p>
<p>begin</p>
<p>   logfile := utl_file.fopen(&#8216;/tmp&#8217;,'sequence.log&#8217;,'W&#8217;);<br />
   UTL_FILE.PUT_LINE(logfile,&#8217;Start Processing &#8216;);</p>
<p>   utl_file.put_line(logfile,&#8217;Processing WRKLOGKEY sequence for table worklog&#8217;);<br />
   select max(wrklogkey) into curr_val from worklog;<br />
   select wrklogkey.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;WRKLOGKEY&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing areakey sequence for table arearef &#8216;);<br />
   select max(areakey) into curr_val from arearef;<br />
   select areakey.nextval into next_val from dual;<br />
   utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
	diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;AREAKEY&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing NM_SB_SNC_ID sequence for table SB_SNC_PORTS&#8217;);<br />
   select max(NM_SB_SNC_ID) into curr_val from SB_SNC_PORTS;<br />
   select NM_SB_SNC_ID.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
 	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
 	if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;NM_SB_SNC_ID&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing SB_SNET_KEY sequence for table SB_EMS_SUBNET&#8217;);<br />
   select max(sb_snet_key) into curr_val from SB_EMS_SUBNET;<br />
   select sb_snet_key.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;sb_snet_key&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing SUBMAPKEY sequence for table SUBMAPREF&#8217;);<br />
   select max(SUBMAPKEY) into curr_val from SUBMAPREF;<br />
   select SUBMAPKEY.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;SUBMAPKEY&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing TRENCHCODE sequence for table TRENCH_INFO&#8217;);<br />
   select max(TRENCHCODE) into curr_val from TRENCH_INFO;<br />
   select TRENCHCODE.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;TRENCHCODE&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing WRKGRP_KEY sequence for table WORKGRPS&#8217;);<br />
   select max(WRKGRP_KEY) into curr_val from WORKGRPS;<br />
   select WRKGRP_KEY.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;WRKGRP_KEY&#8217;,diff,logfile);<br />
   end if;</p>
<p>&#8211;  utl_file.put_line(logfile,&#8217;Processing AUTO_MERGE_ID sequence for table AUTO_MERGE_CIRCUIT&#8217;);<br />
  &#8212; select max(AUTO_MERGE_ID) into curr_val from AUTO_MERGE_CIRCUIT;<br />
 &#8212; select AUTO_MERGE_ID.nextval into next_val from dual;<br />
   &#8211;diff := curr_val &#8211; next_val;<br />
   &#8211;if(diff &gt;= 0)<br />
   &#8211;then<br />
&#8211;	resetsequence(&#8216;AUTO_MERGE_ID&#8217;,diff,logfile);<br />
  &#8212; end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing CACNUM sequence for table FACODR&#8217;);<br />
   select max(substr(CAC,2)) into curr_val_tmp from FACODR;<br />
   &#8211;curr_val := substr(curr_val_tmp,2);<br />
   select CACNUM.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;CACNUM&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing DL_CKT_REL_ID sequence for table DL_CKT_REL&#8217;);<br />
   select max(DL_CKT_REL_ID) into curr_val from DL_CKT_REL;<br />
   select DL_CKT_REL_ID.nextval into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
	if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;DL_CKT_REL_ID&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing FMLAYOUT sequence for table FACODR&#8217;);<br />
   select max(LAYOUT) into curr_val from FACODR;<br />
   select FMLAYOUT.nextval into next_val from dual;<br />
	 utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;FMLAYOUT&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing GRPKEY sequence for table FACODR&#8217;);<br />
   select nvl(max(GRPKEY),0) into curr_val from FACODR;<br />
   select GRPKEY.nextval into next_val from dual;<br />
	 utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;GRPKEY&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.put_line(logfile,&#8217;Processing CLONUM sequence for table FACODR&#8217;);<br />
   select max(substr(clo,4)) into curr_val from FACODR;<br />
   select ((CLONUM.nextval * 1000) + 1) into next_val from dual;<br />
	utl_file.put_line(logfile,&#8217;max in table :&#8217;||curr_val||&#8217; nextval:&#8217;||next_val);<br />
   diff := curr_val &#8211; next_val;<br />
	utl_file.put_line(logfile,&#8217;difference:&#8217;||diff);<br />
   if(diff &gt;= 0)<br />
   then<br />
	resetsequence(&#8216;CLONUM&#8217;,diff,logfile);<br />
   end if;</p>
<p>   utl_file.fclose(logfile);<br />
END;<br />
/<br />
show errors</p>
<p>!echo &#8220;check_all_sequences::end&#8221;</p>
<p>execute check_all_sequences(&#8216;$host_name&#8217;);<br />
!<br />
}</p>
<p>check_all_function</p>
]]></content:encoded>
	</item>
</channel>
</rss>

