There are a few different ways to manage large quantities of text in a
database. The previous examples given for the REPORT table
concentrated on the VARCHAR (variable length character) column which
held a filename as a character string; e.g., '/data/rnd/ink.txt'
as stored in the FILENAME column. This column manages the filename
only, not the text contained in that file.
In the examples used in Chapter here, Table Definition, a RESUME table is created which uses a VARCHAR field of around 2000 characters to hold the text of the resumes. In this case, the job experience text of each resume is stored in the column EXP. A Load Program would be used to insert text of this length into the column of a table.
Another way Texis has of managing text is to allow the files to remain
outside the confines of the table. Where the INDIRECT data type is
used, a filename can be entered as a value which points to an actual
file, rather than treated as a character string. The INDIRECT type
looks at the contents of the file when doing LIKE
, and these contents
can be retrieved using the API (Application Program Interface).
The form of the INSERT INTO command is the same as above. Where a
data type is defined as INDIRECT
, a filename may be entered as the
value of one or more columns.
Example: Let's say we have the following information available for a resume to be entered into the RESUME table, and that the job experience column EXP has been defined as INDIRECT.
RES_ID = R421
RNAME = Smith, James
JOB = Jr Analyst
EDUC = B.A. 1982 Radford University
EXP = contained in the resume file "/usr/local/resume/smith.res"
Use this INSERT INTO statement to add a row containing this information to the RESUME table:
INSERT INTO RESUME
VALUES ('R421','Smith, James','Jr Analyst',
'B.A. 1982 Radford University',
'/usr/local/resume/smith.res') ;
The EXP column acts as a pointer to the full text files containing the
resumes. As such, the text in those files responds to all
SELECT
-FROM
-WHERE
statements. Thus Metamorph queries used after LIKE
can be done on the text content manipulated by Texis in this table.