Question: I want to create a Microsoft Word doc from
data within an Oracle table. How do I run SQL to extract Oracle rows and
format them as a Word document?
Answer: Inside MS Word there is a mail merge
utility that can gather data extracted from Oracle via ODBC into a Word doc, but
this cannot be scripted.
Creating a Word doc from Oracle table rows
Within Oracle, you can generate a word doc from Oracle
table data you must install and configure Oracle COM Automation Feature package
which is included as part of Oracle installation.
The Oracle documentation has a
Oracle COM MS-Word example for creating a Microsoft Word document containing
the names of employees in the database.
This link shows a sample script to create an MS-Word document from Oracle
table data.
Also,
this page shows detailed steps for storing a Word doc in Oracle:
1 - Create a table to hold
the MS-Word document:
CREATE TABLE
my_docs
(
name VARCHAR2(200) NOT NULL,
doc BLOB
NOT NULL
);
2) Create a directory object which stores all
your Word docs:
CREATE OR REPLACE
DIRECTORY documents AS 'C:\work';
3) Create a procedure to
store the Word doc in Oracle:
CREATE OR REPLACE PROCEDURE load_file_to_my_docs (p_file_name IN
my_docs.name%TYPE)
AS
v_bfile BFILE;
v_blob BLOB;
BEGIN
INSERT INTO my_docs (name, doc)
VALUES ( p_file_name, empty_blob())
RETURN doc INTO v_blob;
v_bfile := BFILENAME('documents',
p_file_name);
Dbms_Lob.Fileopen(v_bfile,
Dbms_Lob.File_Readonly);
Dbms_Lob.Loadfromfile(v_blob, v_bfile,
Dbms_Lob.Getlength(v_bfile));
Dbms_Lob.Fileclose(v_bfile);
COMMIT;
END;/
4)Execute the above procedure to store the Word
doc in Oracle: