Database-Gateway-Informix-Users-Guide 20c
Database-Gateway-Informix-Users-Guide 20c
Database-Gateway-Informix-Users-Guide 20c
Informix
User's Guide
20c
F19307-01
September 2019
Oracle Database Gateway for Informix User's Guide, 20c
F19307-01
Copyright © 2002, 2019, Oracle and/or its affiliates. All rights reserved.
Contributing Authors: Vira Goorah, Juan Pablo Ahues-Vasquez, Peter Castro, Charles Benet, Peter Wong,
Govind Lakkoju
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify,
license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means.
Reverse engineering, disassembly, or decompilation of this software, unless required by law for
interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software,
any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are
"commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-
specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the
programs, including any operating system, integrated software, any programs installed on the hardware,
and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications.
It is not developed or intended for use in any inherently dangerous applications, including applications that
may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you
shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its
safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this
software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are
used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron,
the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro
Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise
set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be
responsible for any loss, costs, or damages incurred due to your access to or use of third-party content,
products, or services, except as set forth in an applicable agreement between you and Oracle.
Contents
Preface
Audience x
Documentation Accessibility x
Related Documentation x
Conventions xi
iii
Locking 2-7
Known Restrictions 2-7
Transactional Integrity 2-8
Transaction Capability 2-8
COMMIT or ROLLBACK in PL/SQL Cursor Loops Closes Open Cursors 2-9
Pass-Through Feature 2-9
Informix SMALLFLOAT and REAL Data Types 2-9
SQL Syntax 2-9
WHERE CURRENT OF Clause 2-9
CONNECT BY Clause 2-10
Use of NULL Keyword in SELECT Statement 2-10
Subqueries in INSERT Statement 2-10
Subqueries in DELETE, INSERT, and UPDATE Statements 2-10
ROWID 2-10
EXPLAIN PLAN Statement 2-10
SQL*Plus 2-10
Database Links 2-10
Gateway Data Dictionary Views 2-11
Stored Procedures 2-11
Known Problems 2-11
Encrypted Format Login 2-11
Informix BYTE and TEXT Data Types 2-11
Schema Names and PL/SQL 2-12
Data Dictionary Views and PL/SQL 2-12
3 Case Studies
Case Descriptions 3-1
Distribution Media Contents 3-1
Demonstration Files 3-2
Demonstration Requirements 3-2
Creating Demonstration Tables 3-2
Demonstration Table Definitions 3-3
Demonstration Table Contents 3-3
Case 1: Simple Queries 3-4
Case 2: A More Complex Query 3-4
Case 3: Joining Informix Tables 3-5
Case 4: Write Capabilities 3-5
DELETE Statement 3-5
UPDATE Statement 3-5
INSERT Statement 3-5
iv
Case 5: Data Dictionary Query 3-5
Case 6: The Pass-Through Feature 3-5
UPDATE Statement 3-6
SELECT Statement 3-6
C Data Dictionary
Informix System Catalog Tables C-1
Accessing the Gateway Data Dictionary C-1
Direct Queries to Informix Tables C-2
Supported Views and Tables C-2
Data Dictionary Mapping C-3
Default Column Values C-4
Gateway Data Dictionary Descriptions C-4
ALL_CATALOG C-5
ALL_COL_COMMENTS C-5
ALL_COL_PRIVS C-5
ALL_CONS_COLUMNS C-6
ALL_CONSTRAINTS C-6
ALL_IND_COLUMNS C-6
v
ALL_INDEXES C-7
ALL_OBJECTS C-8
ALL_SYNONYMS C-9
ALL_TAB_COLUMNS C-9
ALL_TAB_COMMENTS C-10
ALL_TAB_PRIVS C-11
ALL_TABLES C-11
ALL_USERS C-12
ALL_VIEWS C-13
COLUMN_PRIVILEGES C-13
DBA_CATALOG C-14
DBA_COL_COMMENTS C-14
DBA_OBJECTS C-14
DBA_TAB_COLUMNS C-15
DBA_TAB_COMMENTS C-16
DBA_TABLES C-16
DICT_COLUMNS C-17
DICTIONARY C-18
DUAL C-18
TABLE_PRIVILEGES C-18
USER_CATALOG C-18
USER_COL_COMMENTS C-19
USER_COL_PRIVS C-19
USER_CONS_COLUMNS C-19
USER_CONSTRAINTS C-20
USER_IND_COLUMNS C-20
USER_INDEXES C-21
USER_OBJECTS C-22
USER_SYNONYMS C-23
USER_TAB_COLUMNS C-23
USER_TAB_COMMENTS C-24
USER_TAB_PRIVS C-24
USER_TABLES C-25
USER_USERS C-26
USER_VIEWS C-26
D Initialization Parameters
Initialization Parameter File Syntax D-1
Oracle Database Gateway for Informix Initialization Parameters D-2
HS_DB_DOMAIN D-3
vi
HS_DB_INTERNAL_NAME D-4
HS_DB_NAME D-4
HS_DESCRIBE_CACHE_HWM D-4
HS_LANGUAGE D-4
Character Sets D-5
Language D-5
Territory D-5
HS_LONG_PIECE_TRANSFER_SIZE D-6
HS_OPEN_CURSORS D-6
HS_RPC_FETCH_REBLOCKING D-6
HS_RPC_FETCH_SIZE D-7
HS_TIME_ZONE D-7
HS_TRANSACTION_MODEL D-7
IFILE D-8
HS_FDS_TIMESTAMP_MAPPING D-8
HS_FDS_DATE_MAPPING D-9
HS_FDS_CONNECT_INFO D-9
HS_FDS_RECOVERY_ACCOUNT D-9
HS_FDS_RECOVERY_PWD D-10
HS_FDS_TRACE_LEVEL D-10
HS_FDS_TRANSACTION_ISOLATION D-10
HS_FDS_TRANSACTION_LOG D-11
HS_FDS_FETCH_ROWS D-11
HS_IDLE_TIMEOUT D-11
HS_NLS_LENGTH_SEMANTICS D-11
HS_KEEP_REMOTE_COLUMN_SIZE D-12
HS_FDS_REMOTE_DB_CHARSET D-12
HS_FDS_SUPPORT_STATISTICS D-13
HS_FDS_SQLLEN_INTERPRETATION D-13
HS_FDS_ARRAY_EXEC D-13
Index
vii
List of Tables
A-1 Data Type Mapping and Restrictions A-1
C-1 Oracle Data Dictionary View Names and Informix Equivalents C-3
C-2 ALL_CATALOG C-5
C-3 ALL_COL_COMMENTS C-5
C-4 ALL_COL_PRIVS C-5
C-5 ALL_CONS_COLUMNS C-6
C-6 ALL_CONSTRAINTS C-6
C-7 ALL_IND_COLUMNS C-6
C-8 ALL_INDEXES C-7
C-9 ALL_OBJECTS C-8
C-10 ALL_SYNONYMS C-9
C-11 ALL_TAB_COLUMNS C-9
C-12 ALL_TAB_COMMENTS C-10
C-13 ALL_TAB_PRIVS C-11
C-14 ALL_TABLES C-11
C-15 ALL_USERS C-12
C-16 ALL_VIEWS C-13
C-17 COLUMN_PRIVILEGES C-13
C-18 DBA_CATALOG C-14
C-19 DBA_COL_COMMENTS C-14
C-20 DBA_OBJECTS C-14
C-21 DBA_TAB_COLUMNS C-15
C-22 DBA_TAB_COMMENTS C-16
C-23 DBA_TABLES C-16
C-24 DICT_COLUMNS C-17
C-25 DICTIONARY C-18
C-26 DUAL C-18
C-27 TABLE_PRIVILEGES C-18
C-28 USER_CATALOG C-18
C-29 USER_COL_COMMENTS C-19
C-30 USER_COL_PRIVS C-19
C-31 USER_CONS_COLUMNS C-19
C-32 USER_CONSTRAINTS C-20
C-33 USER_IND_COLUMNS C-20
C-34 USER_INDEXES C-21
viii
C-35 USER_OBJECTS C-22
C-36 USER_SYNONYMS C-23
C-37 USER_TAB_COLUMNS C-23
C-38 USER_TAB_COMMENTS C-24
C-39 USER_TAB_PRIVS C-24
C-40 USER_TABLES C-25
C-41 USER_USERS C-26
C-42 USER_VIEWS C-26
ix
Preface
Preface
This manual describes the Oracle Database Gateway for Informix, which enables
Oracle client applications to access Informix data through Structured Query Language
(SQL). The gateway, with the Oracle database, creates the appearance that all data
resides on a local Oracle database, even though the data can be widely distributed.
This preface covers the following topics:
• Audience
• Documentation Accessibility
• Related Documentation
• Conventions
Audience
This manual is intended for Oracle database administrators who perform the following
tasks:
• Installing and configuring the Oracle Database Gateway for Informix
• Diagnosing gateway errors
• Using the gateway to access Informix data
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at http://www.oracle.com/pls/topic/lookup?
ctx=acc&id=docacc.
Related Documentation
For more information, see the following documents:
• Oracle Database New Features Guide
• Oracle Call Interface Programmer's Guide
• Oracle Database Administrator's Guide
x
Preface
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xi
1
Introduction to the Oracle Database
Gateway for Informix
Oracle Database Gateways provide the ability to transparently access data residing in
a non-Oracle system from an Oracle environment. The following topics briefly cover
Heterogeneous Services, the technology that the Oracle Database Gateway for
Informix is based on.
See Also:
Oracle Database Heterogeneous Connectivity User's Guide to get a good
understanding of generic gateway technology, Heterogeneous Services, and
how Oracle Database Gateways fit in the picture.
1-1
Chapter 1
About Oracle Database Gateway for Informix
See Also:
Oracle Database Heterogeneous Connectivity User's Guide for more
information about Heterogeneous Services.
1-2
2
Informix Gateway Features and
Restrictions
After the gateway is installed and configured, you can use the gateway to access
Informix data, pass Informix commands from applications to the Informix database,
perform distributed queries, and copy data.
2-1
Chapter 2
CHAR Semantics
DECLARE
num_rows INTEGER;
BEGIN
num_rows := DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE@IFMX('command');
END;
/
Note:
It is recommended that you COMMIT after each DDL statement in the pass-
through.
See Also:
Oracle Database PL/SQL Packages and Types Reference and Chapter 3,
Features of Oracle Database Gateways, of Oracle Database Heterogeneous
Connectivity User's Guide for more information about the
DBMS_HS_PASSTHROUGH package.
CHAR Semantics
This feature allows the gateway to optionally run in CHAR semantics mode.
Rather than always describing Informix CHAR columns as CHAR(n BYTE), this feature
describes them as CHAR(n CHAR) and VARCHAR(n CHAR). The concept is similar to
Oracle database CHAR semantics. You need to specify
HS_NLS_LENGTH_SEMANTICS=CHAR gateway parameter to activate this option.
See Also:
Initialization Parameters
2-2
Chapter 2
Multi-byte Character Sets Ratio Suppression
See Also:
Initialization Parameters
IPv6 Support
Besides full IPv6 support between Oracle databases and the gateway, IPv6 is also
supported between this gateway and Informix database.
See Also:
Initialization Parameters for more detail about the HS_FDS_CONNECT_INFO
parameter.
2-3
Chapter 2
Database Compatibility Issues for Informix
Naming Rules
Naming rule issues include the following:
• Rules for Naming Objects
• Object Names
• Case Sensitivity
See Also:
Oracle Database Reference and Informix documentation.
Object Names
Names of Informix database objects are limited to a maximum of 18 characters. An
object name can be composed of these characters:
• Numbers 0 to 9
• Lowercase letters a to z
• Uppercase letters A to Z
• Underscore character (_)
Case Sensitivity
Informix handles letter case differently from Oracle. Informix uses these rules:
• Table owner names default to uppercase letters, unless the name is surrounded
by double quote characters
• Column names, table names, view names, and so on, are always treated as
lowercase letters
The Oracle database defaults to uppercase unless you surround identifiers with double
quote characters. For example, to refer to the Informix table called emp, enter the name
with double quote characters, as follows:
2-4
Chapter 2
Database Compatibility Issues for Informix
However, to refer to the Informix table called emp owned by SCOTT from an Oracle
application, enter the following:
SQL> SELECT * FROM "Scott"."emp"@IFMX;
If the Informix table called emp is owned by SCOTT, a table owner name in uppercase
letters, you can enter the owner name without double quote characters, as follows:
SQL> SELECT * FROM SCOTT."emp"@IFMX;
Or
SQL> SELECT * FROM scott."emp"@IFMX;
Oracle recommends that you surround all Informix object names with double quote
characters and use the exact letter case for the object names as they appear in the
Informix data dictionary. This convention is not required when referring to the
supported Oracle data dictionary tables or views listed in Data Dictionary.
If existing applications cannot be changed according to these conventions, create
views in Oracle to associate Informix names to the correct letter case. For example, to
refer to the Informix table emp from an existing Oracle application by using only
uppercase names, define the following view:
SQL> CREATE VIEW EMP (EMPNO, ENAME, SAL, HIREDATE)
AS SELECT "empno", "ename", "sal", "hiredate"
FROM "emp"@IFMX;
With this view, the application can issue statements such as the following:
SQL> SELECT EMPNO, ENAME FROM EMP;
Data Types
Data type issues include the following:
• Binary_ Byte and Text Literal Notation
• Data Type Conversion
This notation is not converted to syntax compatible with Informix BINARY, BYTE and
TEXT data types (a 0x followed by hexadecimal digits, surrounded by single quotes).
2-5
Chapter 2
Database Compatibility Issues for Informix
Where BYTE_TAB contains a column of data type BINARY, BYTE or TEXT. Use bind
variables when inserting into or updating BINARY, BYTE or TEXT data types.
See Also:
Data Type Conversion for more information about restrictions on data types.
Queries
Query issues include the following:
• Row Selection
• Empty Strings
• Empty Bind Variables
Row Selection
Informix evaluates a query condition for all selected rows before returning any of the
rows. If there is an error in the evaluation process for one or more rows, no rows are
returned even though the remaining rows satisfy the condition.
Oracle evaluates the query condition row-by-row and returns a row when the
evaluation is successful. Rows are returned until a row fails the evaluation.
Empty Strings
Oracle processes an empty string in a SQL statement as a null value. Informix
processes an empty string as an empty string.
Comparing to an empty string
The gateway passes literal empty strings to the Informix database without any
conversion. If you intended an empty string to represent a null value, Informix does not
process the statement that way; it uses the empty string.
You can avoid this problem by using NULL or IS NULL in the SQL statement instead of
the empty string syntax, as in the following example:
SELECT * from "emp"@IFMX where "ename" IS NULL;
2-6
Chapter 2
Known Restrictions
For CHAR columns, the gateway returns the full size of the column with each character
as empty space (' ').
Locking
The locking model for an Informix database differs significantly from the Oracle model.
The gateway depends on the underlying Informix behavior, so the following possible
scenarios can affect Oracle applications that access Informix through the gateway:
• Read access might block write access
• Write access might block read access
• Statement-level read consistency is not guaranteed
See Also:
Informix documentation for information about the Informix locking model.
Known Restrictions
If you encounter incompatibility problems not listed in this section or in "Known
Problems", contact Oracle Support Services. The following topics describe the known
restrictions and includes suggestions for dealing with them when possible:
• Transactional Integrity
• Transaction Capability
• COMMIT or ROLLBACK in PL/SQL Cursor Loops Closes Open Cursors
• Pass-Through Feature
• Informix SMALLFLOAT and REAL Data Types
• SQL Syntax
• SQL*Plus
• Database Links
• Gateway Data Dictionary Views
• Stored Procedures
2-7
Chapter 2
Known Restrictions
Note:
If you have any questions or concerns about the restrictions, contact Oracle
Support Services.
Transactional Integrity
The gateway cannot guarantee transactional integrity in the following cases:
• When a statement that is processed by the gateway causes an implicit commit in
the target database
• When the target database is configured to work in autocommit mode
Note:
Oracle strongly recommends the following:
– If you know that executing a particular statement causes an implicit
commit in the target database, then ensure that this statement is
executed in its own transaction.
– Do not configure the target database to work in autocommit mode.
Transaction Capability
The gateway does not support savepoints. If a distributed update transaction is under
way involving the gateway and a user attempts to create a savepoint, the following
error occurs:
ORA-02070: database dblink does not support savepoint in this context
See Also:
Initialization Parameters and the Oracle Database Heterogeneous
Connectivity User's Guide for more information about customizing the
initialization parameter file.
2-8
Chapter 2
Known Restrictions
To prevent this error, move the COMMIT or ROLLBACK statement outside the cursor loop.
Pass-Through Feature
If the SQL statements being passed through the gateway result in an implicit commit at
the Informix database, the Oracle transaction manager is unaware of the commit and
an Oracle ROLLBACK command cannot be used to roll back the transaction.
SQL Syntax
Restrictions on SQL syntax are listed as follows:
• WHERE CURRENT OF Clause
• CONNECT BY Clause
• Use of NULL Keyword in SELECT Statement
• Subqueries in INSERT Statement
• Subqueries in DELETE_ INSERT_ and UPDATE Statements
• ROWID
• EXPLAIN PLAN Statement
See Also:
Supported SQL Syntax and Functions for more information about restrictions
on SQL syntax.
2-9
Chapter 2
Known Restrictions
CONNECT BY Clause
The gateway does not support the CONNECT BY clause in a SELECT statement.
ROWID
The Oracle ROWID implementation is not supported.
SQL*Plus
In SQL*Plus, the gateway does not support using a SELECT statement to retrieve data
from an Informix column defined as data type BYTE.
You need to use double quotes to wrap around lowercase table names, for example:
copy from tkhouser/tkhouser@inst1 insert loc_tkhodept using select* from
"tkhodept"@holink2;
Database Links
The gateway is not multithreaded and cannot support shared database links. Each
gateway session spawns a separate gateway process and connections cannot be
shared.
2-10
Chapter 2
Known Problems
Stored Procedures
The gateway does not support the procedure feature that allows the execution of
stored procedures in a non-Oracle database.
Known Problems
This section lists known problems and includes suggestions for correcting them when
possible. If you have any questions or concerns about the problems, contact Oracle
Support Services. A current list of problems is available online. Contact your local
Oracle office for information about accessing the list.
The known problems are as follows:
• Encrypted Format Login
• Informix BYTE and TEXT Data Types
• Schema Names and PL/SQL
• Data Dictionary Views and PL/SQL
2-11
Chapter 2
Known Problems
The gateway does not support the PL/SQL function COLUMN_VALUE_LONG of the
DBMS_SQL package.
See Also:
Supported SQL Syntax and Functions.
Change the SQL statement to include the schema name of the object.
2-12
3
Case Studies
The following case studies for Informix demonstrate some of the features of the Oracle
Database Gateway. You can verify that the gateway is installed and operating
correctly by using the demonstration files included on the distribution media.
The demonstration files are automatically copied to disk when the gateway is installed.
Topics:
• Case Descriptions
• Distribution Media Contents
• Demonstration Files
• Demonstration Requirements
• Creating Demonstration Tables
• Case 1: Simple Queries
• Case 2: A More Complex Query
• Case 3: Joining Informix Tables
• Case 4: Write Capabilities
• Case 5: Data Dictionary Query
• Case 6: The Pass-Through Feature
Case Descriptions
The cases illustrate:
• A simple query (Case 1)
• A more complex query (Case 2)
• Joining Informix tables (Case 3)
• Write capabilities (Case 4)
• A data dictionary query (Case 5)
• The pass-through feature (Case 6)
3-1
Chapter 3
Demonstration Files
Demonstration Files
After a successful gateway installation, use the demonstration files stored in the
directory $ORACLE_HOME/dg4ifmx/demo where $ORACLE_HOME is the $ORACLE_HOME
directory under which the gateway is installed. The directory contains the following
demonstration files:
Demonstration Requirements
The case studies assume these requirements have been met:
• The gateway demonstration tables are installed in the Informix database
• The Oracle database has an account named SCOTT with a password of TIGER
• The Oracle database has a database link called GTWLINK (set up as public or
private to the user SCOTT) which connects the gateway to a Informix database as
SCOTT with password TIGER2
For example, you can create the database link as follows:
SQL> CREATE DATABASE LINK GTWLINK CONNECT TO SCOTT
2 IDENTIFIED BY TIGER2 USING 'GTWSID';
• Oracle Net Services is configured correctly and running.
• The Informix environment variable, INFORMIXDIR, is set correctly.
3-2
Chapter 3
Creating Demonstration Tables
The script creates the demonstration tables in the Informix database accordingly:
CREATE TABLE GTW_EMP (
EMPNO SMALLINT NOT NULL
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR SMALLINT,
HIREDATE DATETIME,
SAL NUMERIC(7,2),
COMM NUMERIC(7,2),
DEPTNO SMALLINT)
CREATE TABLE GTW_DEPT (
DEPTNO SMALLINT NOT NULL,
DNAME VARCHAR(14),
LOC VARCHAR(13))
CREATE TABLE GTW_SALGRADE (
GRADE MONEY,
LOSAL NUMERIC(9,4),
HISAL NUMERIC(9,4))
GTW_DEPT
Name Null? Type
------------------------------- -------- ----
DEPTNO NOT NULL NUMBER(5)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
GTW_SALGRADE
Name Null? Type
------------------------------- -------- ----
GRADE NUMBER(19,4)
LOSAL NUMBER(9,4)
HISAL NUMBER(9,4)
3-3
Chapter 3
Case 1: Simple Queries
GTW_DEPT
DEPTNO DNAME LOC
----- -------------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
GTW_SALGRADE
GRADE LOSAL HISAL
------ ------ -----
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
3-4
Chapter 3
Case 3: Joining Informix Tables
DELETE Statement
Case 4a demonstrates bind values and subselect. All employees in department 20 and
one employee, WARD, in department 30 are deleted.
UPDATE Statement
Case 4b provides an example of a simple UPDATE statement. In this example,
employees are given a $100 a month salary increase.
INSERT Statement
Case 4c is an example of a simple insert statement that does not provide information
for all columns.
3-5
Chapter 3
Case 6: The Pass-Through Feature
UPDATE Statement
Case 6a provides an example of a pass-through UPDATE statement with bind variables.
In this example, the salary for EMPNO 7934 is set to 4000.
SELECT Statement
Case 6b provides an example of a pass-through SELECT statement. The data that is
returned from the SELECT statement is inserted into a local table at the Oracle
database.
3-6
A
Data Type Conversion
The gateway converts Informix data types to Oracle data types as follows:
In addition to the rules shown in the preceding table, if the maximum size for an
Informix data type is smaller or larger than the corresponding Oracle data type, data
might be lost. For example, if an Oracle table is defined with a column of
VARCHAR2(300) and you use the COPY statement to copy the Oracle table to the
Informix table where the Informix column is defined as VARCHAR(255), the data might
be truncated.
A-1
Appendix A
A-2
Appendix A
A-3
B
Supported SQL Syntax and Functions
The following topics describe supported SQL Syntax and Functions:
• Supported SQL Statements
• Oracle Functions
The gateway does not support Oracle data definition language (DDL) statements. No
form of the Oracle ALTER, CREATE, DROP, GRANT, or TRUNCATE statements can be used.
Instead, use the pass-through feature of the gateway if you need to use DDL
statements against the Informix database.
See Also:
Oracle Database SQL Language Reference for detailed descriptions of
keywords, parameters, and options.
DELETE
The DELETE statement is fully supported. However, only Oracle functions supported by
Informix can be used. Also, you cannot have SQL statements in the subquery that
refer to the same table name in the outer query.
See Also:
"Functions Supported by Informix" for a list of supported functions.
INSERT
The INSERT statement is fully supported. However, only Oracle functions supported by
Informix can be used. Also, you cannot have SQL statements in the subquery that
refer to the same table name in the outer query.
B-1
Appendix B
Oracle Functions
See Also:
"Functions Supported by Informix" for a list of supported functions.
SELECT
The SELECT statement is fully supported, with these exceptions:
• CONNECT BY condition
• NOWAIT
• START WITH condition
• Subquery in HAVING clause
UPDATE
The UPDATE statement is fully supported. However, only Oracle functions supported by
Informix can be used. Also, you cannot have SQL statements in the subquery that
refer to the same table name in the outer query. Subqueries are not supported in the
SET clause. Informix does not support table aliases in UPDATE.
See Also:
"Functions Supported by Informix" for a list of supported functions.
Oracle Functions
All functions are evaluated by the Informix database after the gateway has converted
them to Informix SQL.
B-2
Appendix B
Oracle Functions
• Comparison Operators
• Group Functions
• String Functions
• Pattern Matches
• Date Functions
• Other Functions
Arithmetic Operators
Oracle Informix
+ +
- -
* *
/ /
Comparison Operators
Oracle Informix
= =
> >
< <
>= >=
<= <=
<>, !=, ^= <>
IS NOT NULL IS NOT NULL
IS NULL IS NULL
Group Functions
Oracle Informix
AVG AVG
COUNT COUNT
MAX MAX
MIN MIN
SUM SUM
B-3
Appendix B
Oracle Functions
String Functions
Oracle Informix
||, CONCAT ||
ASCII ASCII
CHR CHR
LENGTH LENGTH
Pattern Matches
Oracle Informix
LIKE 'a%' LIKE "a%"
LIKE 'a_' LIKE "a_"
LIKE 'a\%' ESCAPE '\' LIKE "a\%" ESCAPE "\"
NOT LIKE NOT LIKE
Date Functions
Oracle Informix
date + number date + number
date - number date - number
date + date date + date
date - date date - date
Other Functions
Oracle Informix
ABS ABS
COS COS
EXP EXP
LOG10 LOG10
LN LOGN
LTRIM(char) TRIM(LEADING FROM char)
MOD MOD
POWER (m,n) POW(m,n)
RTRIM(char) TRIM(TRAILING FROM char)
ROUND (with 1 argument) ROUND
SIN SIN
B-4
Appendix B
Oracle Functions
Oracle Informix
SQRT SQRT
TAN TAN
TRUNC (with 1 argument) TRUNC
The gateway, however, does support one function even though there is no equivalent
in Informix. This function is the TO_DATE function:
TO_DATE(date_string | date_column)
Where:
date_string is converted to a string with the following format:
yyyy-mm-dd hh:mi:ss.fff
Note:
Supply the date string with the same format as the result (that is, yyyy-mm-dd
hh:mi:ss.fff).
B-5
C
Data Dictionary
The Oracle Database Gateway for Informix translates a query that refers to an Oracle
database data dictionary table into a query that retrieves the data from Informix system
catalog tables. You perform queries on data dictionary tables over the database link in
the same way you query data dictionary tables in the Oracle database. The gateway
data dictionary is similar to the Oracle database data dictionary in appearance and
use.
Topics:
• Data Dictionary Mapping
• Gateway Data Dictionary Descriptions
C-1
Appendix C
Direct Queries to Informix Tables
4. Passes the data dictionary information from the translated Informix system catalog
table to the Oracle database.
Note:
The values returned when querying the gateway data dictionary might
not be the same as the ones returned by the Oracle SQL*Plus DESCRIBE
command.
C-2
Appendix C
Data Dictionary Mapping
No other Oracle database data dictionary tables or views are supported. If you use a
view not on the list, you receive the Oracle database error code for no more rows
available.
Queries through the gateway of any data dictionary table or view beginning with ALL_
can returns rows from the Informix database even when access privileges for those
Informix objects have not been granted. When querying an Oracle database with the
Oracle data dictionary, rows are returned only for those objects you are permitted to
access.
Table C-1 Oracle Data Dictionary View Names and Informix Equivalents
C-3
Appendix C
Gateway Data Dictionary Descriptions
Table C-1 (Cont.) Oracle Data Dictionary View Names and Informix Equivalents
C-4
Appendix C
ALL_CATALOG
ALL_CATALOG
Table C-2 ALL_CATALOG
ALL_COL_COMMENTS
Table C-3 ALL_COL_COMMENTS
ALL_COL_PRIVS
Table C-4 ALL_COL_PRIVS
C-5
Appendix C
ALL_CONS_COLUMNS
ALL_CONS_COLUMNS
Table C-5 ALL_CONS_COLUMNS
ALL_CONSTRAINTS
Table C-6 ALL_CONSTRAINTS
Name Value
OWNER -
CONSTRAINT_NAME -
CONSTRAINT_TYPE "R" or "P" or "U" or "C"
TABLE_NAME -
SEARCH_CONDITION ""
R_OWNER ""
R_CONSTRAINT_NAME ""
DELETE_RULE ""
STATUS ""
DEFERRABLE ""
DEFERRED ""
VALIDATED ""
GENERATED ""
BAD ""
RELY ""
LAST_CHANGE -
ALL_IND_COLUMNS
Table C-7 ALL_IND_COLUMNS
C-6
Appendix C
ALL_INDEXES
ALL_INDEXES
Table C-8 ALL_INDEXES
C-7
Appendix C
ALL_OBJECTS
ALL_OBJECTS
Table C-9 ALL_OBJECTS
C-8
Appendix C
ALL_SYNONYMS
ALL_SYNONYMS
Table C-10 ALL_SYNONYMS
ALL_TAB_COLUMNS
Table C-11 ALL_TAB_COLUMNS
C-9
Appendix C
ALL_TAB_COMMENTS
ALL_TAB_COMMENTS
Table C-12 ALL_TAB_COMMENTS
C-10
Appendix C
ALL_TAB_PRIVS
ALL_TAB_PRIVS
Table C-13 ALL_TAB_PRIVS
ALL_TABLES
Table C-14 ALL_TABLES
C-11
Appendix C
ALL_USERS
ALL_USERS
Table C-15 ALL_USERS
C-12
Appendix C
ALL_VIEWS
ALL_VIEWS
Table C-16 ALL_VIEWS
COLUMN_PRIVILEGES
Table C-17 COLUMN_PRIVILEGES
C-13
Appendix C
DBA_CATALOG
DBA_CATALOG
Table C-18 DBA_CATALOG
DBA_COL_COMMENTS
Table C-19 DBA_COL_COMMENTS
DBA_OBJECTS
Table C-20 DBA_OBJECTS
C-14
Appendix C
DBA_TAB_COLUMNS
DBA_TAB_COLUMNS
Table C-21 DBA_TAB_COLUMNS
C-15
Appendix C
DBA_TAB_COMMENTS
DBA_TAB_COMMENTS
Table C-22 DBA_TAB_COMMENTS
DBA_TABLES
Table C-23 DBA_TABLES
C-16
Appendix C
DICT_COLUMNS
DICT_COLUMNS
Table C-24 DICT_COLUMNS
C-17
Appendix C
DICTIONARY
DICTIONARY
Table C-25 DICTIONARY
DUAL
Table C-26 DUAL
TABLE_PRIVILEGES
Table C-27 TABLE_PRIVILEGES
USER_CATALOG
Table C-28 USER_CATALOG
C-18
Appendix C
USER_COL_COMMENTS
USER_COL_COMMENTS
Table C-29 USER_COL_COMMENTS
USER_COL_PRIVS
Table C-30 USER_COL_PRIVS
USER_CONS_COLUMNS
Table C-31 USER_CONS_COLUMNS
C-19
Appendix C
USER_CONSTRAINTS
USER_CONSTRAINTS
Table C-32 USER_CONSTRAINTS
USER_IND_COLUMNS
Table C-33 USER_IND_COLUMNS
C-20
Appendix C
USER_INDEXES
USER_INDEXES
Table C-34 USER_INDEXES
C-21
Appendix C
USER_OBJECTS
USER_OBJECTS
Table C-35 USER_OBJECTS
C-22
Appendix C
USER_SYNONYMS
USER_SYNONYMS
Table C-36 USER_SYNONYMS
USER_TAB_COLUMNS
Table C-37 USER_TAB_COLUMNS
C-23
Appendix C
USER_TAB_COMMENTS
USER_TAB_COMMENTS
Table C-38 USER_TAB_COMMENTS
USER_TAB_PRIVS
Table C-39 USER_TAB_PRIVS
C-24
Appendix C
USER_TABLES
USER_TABLES
Table C-40 USER_TABLES
C-25
Appendix C
USER_USERS
USER_USERS
Table C-41 USER_USERS
USER_VIEWS
Table C-42 USER_VIEWS
C-26
Appendix C
USER_VIEWS
C-27
D
Initialization Parameters
The Oracle database initialization parameters in the init.ora file are distinct from
gateway initialization parameters. Set the gateway parameters in the initialization
parameter file using an agent-specific mechanism, or set them in the Oracle data
dictionary using the DBMS_HS package. The gateway initialization parameter file must
be available when the gateway is started.
The following topics contain a list of the gateway initialization parameters that can be
set for each gateway and their description. The topics also describe the initialization
parameter file syntax.
• Initialization Parameter File Syntax
• Oracle Database Gateway for Informix Initialization Parameters
Where:
parameter is an initialization parameter name. It is a string of characters starting
with a letter and consisting of letters, digits and underscores. Initialization
parameter names are case sensitive.
value is the initialization parameter value. It is case-sensitive. An initialization
parameter value is either:
– A string of characters that does not contain any backslashes, white space or
double quotation marks (")
– A quoted string beginning with a double quotation mark and ending with a
double quotation mark. The following can be used inside a quoted string:
* backslash (\) is the escape character
* \n inserts a new line
* \t inserts a tab
* \" inserts a double quotation mark
D-1
Appendix D
Oracle Database Gateway for Informix Initialization Parameters
* \\ inserts a backslash
A backslash at the end of the line continues the string on the next line. If a
backslash precedes any other character then the backslash is ignored.
For example, to enable tracing for an agent, set the HS_FDS_TRACE_LEVEL
initialization parameter as follows:
HS_FDS_TRACE_LEVEL=ON
SET and PRIVATE are optional keywords. You cannot use either as an initialization
parameter name. Most parameters are needed only as initialization parameters, so
you usually do not need to use the SET or PRIVATE keywords. If you do not specify
either SET or PRIVATE, the parameter is used only as an initialization parameter for
the agent.
SET specifies that, in addition to being used as an initialization parameter, the
parameter value is set as an environment variable for the agent process. Use SET
for parameter values that the drivers or non-Oracle system need as environment
variables.
PRIVATE specifies that the initialization parameter should be private to the agent
and should not be uploaded to the Oracle database. Most initialization parameters
should not be private. If, however, you are storing sensitive information like a
password in the initialization parameter file, then you may not want it uploaded to
the server because the initialization parameters and values are not encrypted
when uploaded. Making the initialization parameters private prevents the upload
from happening and they do not appear in dynamic performance views. Use
PRIVATE for the initialization parameters only if the parameter value includes
sensitive information such as a user name or password.
SET PRIVATE specifies that the parameter value is set as an environment variable
for the agent process and is also private (not transferred to the Oracle database,
not appearing in dynamic performance views or graphical user interfaces).
D-2
Appendix D
HS_DB_DOMAIN
• HS_FDS_TRANSACTION_ISOLATION
• HS_TRANSACTION_MODEL
• IFILE
• HS_FDS_TIMESTAMP_MAPPING
• HS_FDS_DATE_MAPPING
• HS_FDS_CONNECT_INFO
• HS_FDS_RECOVERY_ACCOUNT
• HS_FDS_RECOVERY_PWD
• HS_FDS_TRACE_LEVEL
• HS_FDS_TRANSACTION_LOG
• HS_FDS_FETCH_ROWS
• HS_IDLE_TIMEOUT
• HS_NLS_LENGTH_SEMANTICS
• HS_KEEP_REMOTE_COLUMN_SIZE
• HS_FDS_REMOTE_DB_CHARSET
• HS_FDS_SUPPORT_STATISTICS
• HS_FDS_SQLLEN_INTERPRETATION
• HS_FDS_ARRAY_EXEC
HS_DB_DOMAIN
Property Description
Default value WORLD
Range of values 1 to 199 characters
Note:
The HS_DB_NAME and HS_DB_DOMAIN initialization parameters must combine to
form a unique address in a cooperative server environment.
D-3
Appendix D
HS_DB_INTERNAL_NAME
HS_DB_INTERNAL_NAME
Property Description
Default value 01010101
Range of values 1 to 16 hexadecimal characters
HS_DB_NAME
Property Description
Default value HO
Range of values 1 to 8 characters
Specifies a unique alphanumeric name for the data store given to the non-Oracle
system. This name identifies the non-Oracle system within the cooperative server
environment. The HS_DB_NAME and HS_DB_DOMAIN initialization parameters define the
global name of the non-Oracle system.
HS_DESCRIBE_CACHE_HWM
Property Description
Default value 100
Range of values 1 to 4000
HS_LANGUAGE
Property Description
Default value System-specific
Range of values Any valid language name (up to 255 characters)
D-4
Appendix D
HS_LANGUAGE
Note:
The globalization support initialization parameters affect error messages, the
data for the SQL Service, and parameters in distributed external procedures.
Character Sets
Ideally, the character sets of the Oracle database and the non-Oracle data source are
the same. In almost all cases, HS_LANGUAGE should be set exactly the same as Oracle
database character set for optimal character set mapping and performance. If they are
not the same, Heterogeneous Services attempts to translate the character set of the
non-Oracle data source to the Oracle database character set, and back again. The
translation can degrade performance. In some cases, Heterogeneous Services cannot
translate a character from one character set to another.
Note:
The specified character set must be a superset of the operating system
character set on the platform where the agent is installed.
Language
The language component of the HS_LANGUAGE initialization parameter determines:
Territory
The territory clause specifies the conventions for day and week numbering, default
date format, decimal character and group separator, and ISO and local currency
D-5
Appendix D
HS_LONG_PIECE_TRANSFER_SIZE
symbols. Note that the level of globalization support between the Oracle database and
the non-Oracle data source depends on how the gateway is implemented.
HS_LONG_PIECE_TRANSFER_SIZE
Property Description
Default value 64 KB
Range of values Any value up to 2 GB
Sets the size of the piece of LONG data being transferred. A smaller piece size means
less memory requirement, but more round-trips to fetch all the data. A larger piece size
means fewer round-trips, but more of a memory requirement to store the intermediate
pieces internally. Thus, the initialization parameter can be used to tune a system for
the best performance, with the best trade-off between round-trips and memory
requirements, and network latency or response time.
HS_OPEN_CURSORS
Property Description
Default value 50
Range of values 1 to the value of Oracle's OPEN_CURSORS initialization parameter
Defines the maximum number of cursors that can be open on one connection to a
non-Oracle system instance.
The value never exceeds the number of open cursors in the Oracle database.
Therefore, setting the same value as the OPEN_CURSORS initialization parameter in the
Oracle database is recommended.
HS_RPC_FETCH_REBLOCKING
Property Description
Default value ON
Range of values OFF or ON
D-6
Appendix D
HS_RPC_FETCH_SIZE
HS_RPC_FETCH_SIZE
Property Description
Default value 50000
Range of values 1 to 10000000
Tunes internal data buffering to optimize the data transfer rate between the server and
the agent process.
Increasing the value can reduce the number of network round-trips needed to transfer
a given amount of data, but also tends to increase data bandwidth and to reduce
latency as measured between issuing a query and completion of all fetches for the
query. Nevertheless, increasing the fetch size can increase latency for the initial fetch
results of a query, because the first fetch results are not transmitted until additional
data is available.
HS_TIME_ZONE
Property Description
Default value for Derived from the NLS_TERRITORY initialization parameter
'[+|-]hh:mm'
Range of values for Any valid datetime format mask
'[+|-]hh:mm'
Specifies the default local time zone displacement for the current SQL session. The
format mask, [+|-]hh:mm, is specified to indicate the hours and minutes before or after
UTC (Coordinated Universal Time—formerly Greenwich Mean Time). For example:
HS_TIME_ZONE = [+ | -] hh:mm
HS_TRANSACTION_MODEL
Property Description
Default Value COMMIT_CONFIRM
Range of Values COMMIT_CONFIRM, READ_ONLY, SINGLE_SITE,
READ_ONLY_AUTOCOMMIT, SINGLE_SITE_AUTOCOMMIT
Specifies the type of transaction model that is used when the non-Oracle database is
updated by a transaction.
The following values are possible:
• COMMIT_CONFIRM provides read and write access to the non-Oracle database and
allows the gateway to be part of a distributed update. To use the commit-confirm
model, the following items must be created in the non-Oracle database:
– Transaction log table. The default table name is HS_TRANSACTION_LOG. A
different name can be set using the HS_FDS_TRANSACTION_LOG parameter. The
D-7
Appendix D
IFILE
transaction log table must be granted SELECT, DELETE, and INSERT privileges
set to public.
– Recovery account. The account name is assigned with the
HS_FDS_RECOVERY_ACCOUNT parameter.
– Recovery account password. The password is assigned with the
HS_FDS_RECOVERY_PWD parameter.
• READ_ONLY provides read access to the non-Oracle database.
• SINGLE_SITE provides read and write access to the non-Oracle database.
However, the gateway cannot participate in distributed updates.
• READ_ONLY_AUTOCOMMIT provides read only access to the non-Oracle database that
does not use logging.
• SINGLE_SITE_AUTOCOMMIT provides read and write access to the non-Oracle
database without logging. The gateway cannot participate in distributed updates.
Moreover, any update to the non-Oracle database is committed immediately.
IFILE
Property Description
Default value None
Range of values Valid parameter file names
Use the IFILE initialization parameter to embed another initialization file within the
current initialization file. The value should be an absolute path and should not contain
environment variables. The three levels of nesting limit do not apply.
See Also:
Oracle Database Reference
HS_FDS_TIMESTAMP_MAPPING
Property Description
Default Value DATE
Range of Values CHAR|DATE|TIMESTAMP
Syntax HS_FDS_TIMESTAMP_MAPPING={CHAR|DATE|TIMESTAMP}
If set to CHAR , then non-Oracle target timestamp would be mapped to CHAR(26). If set
to DATE (default), then non-Oracle target timestamp would be mapped to Oracle DATE.
If set to TIMESTAMP, then non-Oracle target timestamp would be mapped to Oracle
TIMESTAMP.
D-8
Appendix D
HS_FDS_DATE_MAPPING
HS_FDS_DATE_MAPPING
Property Description
Default Value DATE
Range of Values DATE|CHAR
Syntax HS_FDS_DATE_MAPPING={DATE|CHAR}
If set to CHAR, then non-oracle target date would be mapped to CHAR(10). If set to DATE,
then non-Oracle target date would be mapped to Oracle date.
HS_FDS_CONNECT_INFO
Property Description
Default Value None
Range of Values Not applicable
The default initialization parameter file already has an entry for this parameter. The
syntax for HS_FDS_CONNECT_INFO for the gateway is as follows:
HS_FDS_CONNECT_INFO=host_name:port_number/server_name/database_name
where, host_name is the host name or IP address of the machine hosting the Informix
database, port_number is the port number of the Informix database server,
server_name is the name of the Informix database server, and database_name is the
Informix database name.
This release supports IPv6 format, so you can enter IPv6 format in place of hostname,
but you need to wrap square brackets around the IPv6 specification.
For example,
HS_FDS_CONNECT_INFO=[2001:0db8:20c:f1ff:fec6:38af]:port_number/…
HS_FDS_RECOVERY_ACCOUNT
Property Description
Default Value RECOVER
Range of values Any valid user ID
Specifies the name of the recovery account used for the commit-confirm transaction
model. An account with user name and password must be set up at the non-Oracle
system. For more information about the commit-confirm model, see the
HS_TRANSACTION_MODEL parameter.
D-9
Appendix D
HS_FDS_RECOVERY_PWD
HS_FDS_RECOVERY_PWD
Property Description
Default Value RECOVER
Range of values Any valid password
Specifies the password of the recovery account used for the commit-confirm
transaction model set up at the non-Oracle system. For more information about the
commit-confirm model, see the HS_TRANSACTION_MODEL parameter.
HS_FDS_TRACE_LEVEL
Property Description
Default Value OFF
Range of values OFF, ON, DEBUG
HS_FDS_TRANSACTION_ISOLATION
Property Description
Default Value READ_COMMITTED
Range of Values {READ_UNCOMMITTED|READ_COMMITTED|REPEATABLE_READ|
SERIALIZABLE}
Syntax HS_FDS_ISOLATION_LEVEL={{READ_UNCOMMITTED|
READ_COMMITTED|REPEATABLE_READ|SERIALIZABLE}
D-10
Appendix D
HS_FDS_TRANSACTION_LOG
Use caution when specifying an isolation level lower than the Oracle transaction
isolation level being used, as the gateway transaction will have different Preventable
Read Phenomena from what will occur in the Oracle database transaction.
HS_FDS_TRANSACTION_LOG
Property Description
Default Value HS_TRANSACTION_LOG
Range of Values Any valid table name
Specifies the name of the table created in the non-Oracle system for logging
transactions. For more information about the transaction model, see the
HS_TRANSACTION_MODEL parameter.
HS_FDS_FETCH_ROWS
Property Description
Default Value 100
Range of Values Any integer between 1 and 1000
Syntax HS_FDS_FETCH_ROWS=num
HS_FDS_FETCH_ROWS specifies the fetch array size. This is the number of rows to be
fetched from the non-Oracle database and to return to Oracle database at one time.
This parameter will be affected by the HS_RPC_FETCH_SIZE and
HS_RPC_FETCH_REBLOCKING parameters.
HS_IDLE_TIMEOUT
Property Description
Default Value 0 (no timeout)
Range of Values 0-9999 (minutes)
Syntax HS_IDLE_TIMEOUT=num
This feature is only available for Oracle Net TCP protocol. When there is no activity for
a connected gateway session for this specified time period, the gateway session would
be terminated automatically with pending update (if any) rolled back.
HS_NLS_LENGTH_SEMANTICS
Property Description
Default Value BYTE
Range of Values BYTE | CHAR
Syntax HS_NLS_LENGTH_SEMANTICS = { BYTE | CHAR }
D-11
Appendix D
HS_KEEP_REMOTE_COLUMN_SIZE
HS_KEEP_REMOTE_COLUMN_SIZE
Property Description
Default Value OFF
Range of Values OFF | LOCAL |REMOTE | ALL
Syntax HS_KEEP_REMOTE_COLUMN_SIZE = OFF | LOCAL |REMOTE
| ALL
Parameter type String
HS_FDS_REMOTE_DB_CHARSET
Property Description
Default Value None
Range of values Not applicable
Syntax HS_FDS_REMOTE_DB_CHARSET
This parameter is valid only when HS_LANGUAGE is set to AL32UTF8 and the gateway
runs on Windows. As more Oracle databases and non-Oracle databases use Unicode
as database character sets, it is preferable to also run the gateway in Unicode
character set. To do so, you must set HS_LANGUAGE=AL32UTF8. However, when the
gateway runs on Windows, the Microsoft ODBC Driver Manager interface can
exchange data only in the double-byte character set, UCS2. This results in extra ratio
expansion of described buffer and column sizes. To compensate, the gateway can re-
adjust the column size if HS_FDS_REMOTE_DB_CHARSET is set to the corresponding non-
D-12
Appendix D
HS_FDS_SUPPORT_STATISTICS
HS_FDS_SUPPORT_STATISTICS
Property Description
Default Value TRUE
Range of values {TRUE|FALSE}
Syntax HS_FDS_SUPPORT_STATISTICS= {TRUE|FALSE}
We gather statistics from the non-Oracle database by default. You can choose to
disable the gathering of remote database statistics by setting the
HS_FDS_SUPPORT_STATISTICS parameter to FALSE.
HS_FDS_SQLLEN_INTERPRETATION
Property Description
Default Value 64
Range of values {64|32}
Syntax HS_FDS_SQLLEN_INTERPRETATION= {64|32}
This parameter is only valid for 64 bit platforms. ODBC standard specifies SQLLEN (of
internal ODBC construct) being 64 bit on 64 bit platforms, but some ODBC driver
managers and drivers violate this convention, and implement it as 32 bit. In order for
the gateway to compensate their behavior, you need to specify
HS_FDS_SQLLEN_INTERPRETATION=32 if you use these types of driver managers and
driver.
HS_FDS_ARRAY_EXEC
Property Description
Default Value TRUE
Range of values {TRUE|FALSE}
Syntax HS_FDS_ARRAY_EXEC= {TRUE|FALSE}
If set to TRUE, the gateway will use array operations for insert, update, delete
statements containing binds against the remote data source. The array size is
determined by the value of the HS_FDS_FETCH_ROWS eter.
If set to FALSE, the gateway will not use array operations for insert, update, and delete
statements. Instead, a single statement will be issued for every value.
D-13
Index
A Data type (continued)
SERIAL, A-2
ALTER statement, B-1 SMALLFLOAT, A-3
Arithmetic operators, B-3 TEXT, A-3
VARCHAR, A-2, A-3
VARCHAR2, A-2, A-3
B Date functions, B-4
BYTE data type, A-1 DATETIME data type, A-1
DECIMAL data type, A-1
DELETE statement, 3-5, B-1, B-2
C restrictions on use, 2-10
Case rules, 2-4 Demo build SQL script, 3-2
Case studies, 3-1 Demonstration files, 3-2
case1.sql, 3-2 Demonstration tables, 3-2
CHAR data type, A-1 Demonstration tables build SQL script, 3-2
character sets describe cache high water mark
Heterogeneous Services, D-5 definition, D-4
COMMIT DROP statement, B-1
restrictions, 2-9
Commit point site, 2-8 E
Comparison operators, B-3
CONNECT BY clause, 2-10 Encrypted format login, 2-11
CREATE statement, B-1 Error messages
Cursor loops error tracing, D-10
restrictions, 2-9 Errors
ORA-02070, 2-8
D
F
Data definition language, B-1
Data dictionary fetch array size, with HS_FDS_FETCH_ROWS,
views, C-2 D-11
Data type FLOAT data type, A-1
BYTE, A-1
CHAR, A-1 G
conversion, 2-6
DATETIME, A-1 Gateway
DECIMAL, A-1 case studies, 3-1
FLOAT, A-1 pass-through feature, 2-1
INTEGER, A-1 supported functions, B-1
LONG, A-3 supported SQL syntax, B-1
LONG RAW, A-1 globalization support
MONEY, A-2 Heterogeneous Services, D-4
NCHAR, A-2 GRANT statement, B-1
NVARCHAR, A-2 Group functions, B-3
Index-1
Index
H L
Heterogeneous Services Locking, database, 2-7
defining maximum number of open cursors, LONG data type, A-3
D-6 LONG RAW data type, A-1
optimizing data transfer, D-6
setting global name, D-4
specifying cache high water mark, D-4
M
tuning internal data buffering, D-7 MONEY data type, A-2
tuning LONG data transfer, D-6
Hexadecimal notation, 2-5
HS_DB_NAME initialization parameter, D-4 N
HS_DESCRIBE_CACHE_HWM initialization NCHAR data type, A-2
parameter, D-4 NVARCHAR data type, A-2
HS_FDS_CONNECT_INFO, D-9
HS_FDS_FETCH_ROWS parameter, D-11
HS_FDS_TRACE_LEVEL initialization O
parameter, D-10
Objects
enabling agent tracing, D-2
valid characters, 2-4
HS_FDS_TRANSACTION_ISOLATIONparamete
Objects, naming rules, 2-4
r, D-10
ORA-02070, 2-8
HS_FDS_TRANSACTION_LOG initialization
Oracle functions
parameter, D-11
TO_DATE, B-5
HS_IDLE_TIMEOUT initialization parameter,
D-11
HS_KEEP_REMOTE_COLUMN_SIZE P
initialization parameter, D-12
HS_LANGUAGE initialization parameter, D-4 parameters
HS_LONG_PIECE_TRANSFER_SIZE gateway initialization file
initialization parameter, D-6 HS_FDS_FETCH_ROWS, D-11
HS_NLS_LENGTH_SEMANTICS initialization HS_FDS_TRANSACTION_ISOLATION,
parameter, D-12 D-10
HS_OPEN_CURSORS initialization parameter, Pass-Through Feature, 3-5
D-6 Passing commands to database, 2-9
HS_RPC_FETCH_REBLOCKING initialization Pattern matching, B-4
parameter, D-6 PL/SQL, 2-12
HS_RPC_FETCH_SIZE initialization parameter,
D-7 R
HS_TIME_ZONE initialization parameter, D-7
RAW data type, 2-5
REAL data type, 2-9
I remote
IFILE initialization parameter, D-8 HS_FDS_TRANSACTION_ISOLATION,
Initialization parameter file D-10
customizing, D-1 ROLLBACK
INSERT statement, 3-5, B-1, B-2 restrictions, 2-9
restrictions on use, 2-10 ROWID, 2-9, 2-10
INTEGER data type, A-1
isolation level, S
HS_FDS_TRANSACTION_ISOLATION,
D-10 savepoint support, 2-8
SELECT statement, 3-6, B-2, C-1
use of NULL keyword, 2-10
K SERIAL data type, A-2
Known restrictions, 2-7 Set operations, B-4
Index-2
Index