আমি পরীক্ষার জন্য ডেটা সহ কিছু সারণী তৈরি করতে একটি স্ক্রিপ্ট লিখছি।
আমি নীচের মতো কিছু লিখতে চাই তবে এটি কীভাবে করতে হয় তা আমি জানি না (আমি ওরাকল ১১ জি)
SET ENABLED_USER_ID = SEQ.NEXTVAL; // PSEUDOCODE
SET DISABLED_USER_ID = SEQ.NEXTVAL; // PSEUDOCODE
INSERT INTO USERS
(ID, USR_NAME)
VALUES (:ENABLED_USER_ID, 'ANDREW');
INSERT INTO CAR
(CAR_ID, CAR_NAME, USR_ID)
VALUES (CARSEQ.NEXTVAL, 'FORD', :ENABLED_USER_ID);
INSERT INTO USERS
(ID, USR_NAME)
VALUES (:DISABLED_USER_ID, 'ANDREW');
INSERT INTO CAR
(CAR_ID, CAR_NAME, USR_ID)
VALUES (CARSEQ.NEXTVAL, 'FORD', :DISABLED_USER_ID);
আমি জানি আমি কোয়েরিগুলিকে পুনর্বিন্যস্ত করতে এবং sequence.currval
রেফারেন্সটি ব্যবহার করতে পারতাম, তবে আমি আইডিটি সঠিকভাবে নামযুক্ত ভেরিয়েবলগুলিতে সংরক্ষণ করতে পছন্দ করতাম।
সম্ভবত আমার স্ক্রিপ্টটি কেবল একটিতে মোড়ানো উচিত DECLARE ... BEGIN ... END;
তবে আমি আশা করছি এটি করার আরও একটি সংক্ষিপ্ত উপায় আছে।
সংযোজন 27 মে 2011 15:31
দেখে মনে হচ্ছে যে কোনও ক্ষেত্রে আমাকে একটি DECLARE
ব্লকে ভেরিয়েবলগুলি ঘোষণা করতে হবে । তাই আমি চেষ্টা করছি
DECLARE
USER_ID NUMBER(10,0) := 1;
BEGIN
insert into TEST_USER
values (user_id, 'andrew', sysdate);
END;
তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি
Caused by: java.sql.SQLException: ORA-06550: **line 2, column 27:** PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
এটি ভেরিয়েবল ঘোষণার দিকে নির্দেশ করে।
আমি কোনও ফাইল থেকে স্ক্রিপ্টটি লোড করতে জাভা ব্যবহার করছি এবং ওরাকল 11 জি সার্ভারে ওরেकल জেডিবিসি ড্রাইভার (ojdbc14-10.2.0.4.0.jar) ব্যবহার করে এটি চালাচ্ছি।
TEST_USER সহ সারণীটি তৈরি করা হয়েছে
create table TEST_USERS (
id number(10, 0) not null,
name varchar2(100),
date_ins date default sysdate,
primary key (id)
);