This is another gem I created...I just wanted to create a table, insert some rows, and then insert a block attribute..I am trying understand the logic I am missing behind insertion and then blob insert.

DROP TABLE StudentRecord;

CREATE IR REPLACE DIRECTORY generic AS 'C:\Temp';
GRANT READ ON DIRECTORY generic TO Scott;

CREATE TABLE StudentRecord
(
FirstName varchar(20) NOT NULL,
LastName varchar(40) NOT NULL,
HomeworkAvg decimal(2,2),
AttendanceAvg decimal(2,2),
ExamAvg decimal(2,2),
StudentID varchar(10),
studentPhoto BLOB,
CONSTRAINT student_pk PRIMARY KEY (StudentID)
);

SET SERVEROUTPUT ON
DECLARE
src_file1 BFILE := BFILENAME('generic', 'photo1.jpg');
src_file2 BFILE := BFILENAME('generic', 'photo2.jpg');
src_file3 BFILE := BFILENAME('generic', 'photo3.jpg');
src_file4 BFILE := BFILENAME('generic', 'photo4.jpg');
src_file5 BFILE := BFILENAME('generic', 'photo5.jpg');

BEGIN

INSERT INTO studentRecord (FirstName, LastName, StudentID) VALUES ('John', 'Smith', 10 );
INSERT INTO studentRecord (FirstName, LastName, StudentID) VALUES ('Stacy', 'Smith', 20 );
INSERT INTO studentRecord (FirstName, LastName, StudentID) VALUES ('Clark', 'Smith', 30 );
INSERT INTO studentRecord (FirstName, LastName, StudentID) VALUES ('Lois', 'Smith', 40 );
INSERT INTO studentRecord (FirstName, LastName, StudentID) VALUES ('Terri', 'Smith', 50 );

dbms_lob.fileopen(src_file1, dbms_lob.file_readonly);
dbms_lob.loadfromfile(studentPhoto, src_file1);
UPDATE studentRecord
SET studentPhoto = src_file1
WHERE StudentID = 10;
dbms_lob.fileclose(src_file1);

dbms_lob.fileopen(src_file2, dbms_lob.file_readonly);
dbms_lob.loadfromfile(studentPhoto, src_file2);
UPDATE studentRecord
SET studentPhoto = src_file2
WHERE StudentID = 20;
dbms_lob.fileclose(src_file2);

dbms_lob.fileopen(src_file3, dbms_lob.file_readonly);
dbms_lob.loadfromfile(studentPhoto, src_file3);
UPDATE studentRecord
SET sstudentPhoto = src_file3
WHERE StudentID = 30;
dbms_lob.fileclose(src_file3);

dbms_lob.fileopen(src_file4, dbms_lob.file_readonly);
dbms_lob.loadfromfile(studentPhoto, src_file4);
UPDATE studentRecord
SET studentPhoto = src_file4
WHERE StudentID = 40;
dbms_lob.fileclose(src_file4);

dbms_lob.fileopen(src_file5, dbms_lob.file_readonly);
dbms_lob.loadfromfile(studentPhoto, src_file5);
UPDATE studentRecord
SET studentPhoto = src_file5
WHERE StudentID = 50;
dbms_lob.fileclose(src_file5);

--one thing I am missing completely is how to verify
--the following statement
dbms_output.put_line('The student record table has been created, the student photo column is updated.');

END;
/