I want to create a sequence in oracle where the max value of the column field (Empid) must be the min value of the sequence.
The below was the one i found in our same stackexchange
create sequence mytemp_seq start with &v_Startval;
This command prompts me to enter the max value of teh column name which i have to enter.
How can I fix the value of &v_startval with out it prompting ,but directly setting the values from the below statement
select max(empid) from mytemp..
I am trying like this below
create sequence mytemp_seq start with (SELECT MAX(empid) from mytemp)
But it doesnt work.
Use the CREATE SEQUENCE statement to create a sequence, which is a database object from which multiple users may generate unique integers. You can use sequences to automatically generate primary key values.
An Oracle Sequence is a database object, just like a table or view, that represents a sequence of integers that can be used by any table or view in the global database namespace. A Sequence's values can be accessed using the NEXTVAL, and CURRVAL pseudo-columns. A Sequence can be ascending or descending.
The syntax to create a sequence in Oracle is: CREATE SEQUENCE sequence_name MINVALUE value MAXVALUE value START WITH value INCREMENT BY value CACHE value; sequence_name. The name of the sequence that you wish to create.
You could do it with some PL/SQL:
declare
v_startval integer;
begin
select max(empid)+1 into v_startval from mytemp;
execute immediate 'create sequence mytemp_seq start with ' || v_startval;
end;
In sqlplus you can do
col max_id new_value seq_min_val
SELECT MAX(empid)+1 AS max_id from mytemp;
create sequence mytemp_seq start with &seq_min_val;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With