ISO/IEC 9075-10:2023
(Main)Information technology — Database languages SQL — Part 10: Object language bindings (SQL/OLB)
Information technology — Database languages SQL — Part 10: Object language bindings (SQL/OLB)
ISO/IEC 9075-2 specifies embedded SQL for the programming languages: Ada, C, COBOL, Fortran, MUMPS, Pascal, and PL/I. ISO/IEC 9075-10:2016 defines similar features of Database language SQL that support embedding of SQL-statements into programs written in the Java? programming language (Java is a registered trademark of Sun Microsystems, Inc.). The embedding of SQL into Java is commonly known as "SQLJ". This part of ISO/IEC 9075 specifies the syntax and semantics of SQLJ, as well as mechanisms to ensure binary portability of resulting SQLJ applications. In addition, it specifies a number of Java packages and their contained classes (including methods). Throughout ISO/IEC 9075-10:2016, the terms "SQLJ" and "SQL/OLB" are used synonymously. NOTE Additional explanatory material (non-normative) about certain facilities defined in ISO/IEC 9075-2 can be found in ISO/IEC TR 19075-3.
Technologies de l'information — Langages de base de données SQL — Partie 10: Liaisons de langage objet (SQL/OLB)
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 9075-10
Fifth edition
2023-06
Information technology — Database
languages SQL —
Part 10:
Object language bindings (SQL/OLB)
Technologies de l'information — Langages de base de données
SQL —
Partie 10: Liaisons de langage objet (SQL/OLB)
Reference number
© ISO/IEC 2023
© ISO/IEC 2023
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii
© ISO/IEC 2023 – All rights reserved
ISO/IEC9075-10:2023(E)
Contents Page
Foreword.xviii
Introduction.xx
1 Scope.1
2 Normativereferences.2
3 Termsanddefinitions.3
4 Concepts.6
4.1 Notationsandconventions.6
4.1.1 Notations.6
4.1.2 Firsttermusage.6
4.1.3 Java-related conventions.6
4.1.4 Specificationoftranslator-generatedclasses.7
4.2 Characterstrings.8
4.2.1 Unicode support.8
4.3 Embedded syntax.8
4.4 IntroductiontoSQLJ.8
4.4.1 Overview.8
4.4.2 SQLconstructs.9
4.4.3 SQLJclauses.9
4.4.4 Binaryportability.10
4.4.4.1 Binaryportabilityrequirements.10
4.4.4.2 Componentsofbinaryportableapplications.11
4.4.5 Profile overview.11
4.4.5.1 Introductiontoprofiles.11
4.4.5.2 EntryInfooverview.12
4.4.5.3 TypeInfo overview.14
4.4.5.4 SQLJdatatypeproperties.16
4.4.6 Host variables.18
4.4.7 Hostexpressions.18
4.4.8 Connectioncontexts.18
4.4.9 Defaultconnectioncontext.18
4.4.10 Schemacheckingusingexemplarschemas.19
4.4.11 UsingmultipleSQLJcontextsandconnections.19
4.4.12 DynamicSQLandJDBC/SQLJConnectioninteroperability.20
4.4.12.1 Introductiontoconnectioninteroperability.20
4.4.12.2 CreatinganSQLJConnectionContextfromajava.sql.Connectionobject.20
4.4.12.3 Obtainingajava.sql.ConnectionobjectfromanSQLJConnectionContext.20
4.4.12.4 Connectionsharing.20
4.4.12.5 Connectionresourcemanagement.20
©ISO/IEC2023–Allrightsreserved iii
ISO/IEC9075-10:2023(E)
4.4.13 SQLexecutioncontrolandstatus.21
4.4.14 Iterators.21
4.4.15 Inputandoutputassignability.22
4.4.16 Multiplejava.sql.ResultSetobjectsfromSQL-invokedprocedurecalls.36
4.4.16.1 Introductiontomultipleresultsets.36
4.4.16.2 Resourcemanagementwithmultipleresults.36
4.4.17 JDBC/SQLJResultSetinteroperability.36
4.4.17.1 Introductiontointeroperability.36
4.4.17.2 CreatinganSQLJiteratorfromajava.sql.ResultSetobject.36
4.4.17.3 Obtainingajava.sql.ResultSetobjectfromanSQLJiteratorobject.37
4.4.17.4 Obtainingajava.sql.ResultSetobjectfromanuntypediteratorobject.37
4.4.17.5 Iteratorandjava.sql.ResultSetobjectresourcemanagement.37
4.4.18 Multi-threadingconsiderations.38
4.4.19 User-defineddatatypes.38
4.4.20 Batch updates.39
4.4.20.1 Introductiontobatchupdates.39
4.4.20.2 Batchablestatementsandbatchcompatibility.39
4.4.20.3 StatementbatchingAPI.39
4.4.20.4 Executionstatusandupdatecounts.40
4.4.20.5 Programsemanticsandexceptions.40
4.4.20.6 Batchcancellationanddisabling.41
4.4.20.7 Specificationofabatchinglimit.41
4.4.21 SQLJlanguageelements.42
4.4.21.1 IntroductiontoSQLJlanguageelements.42
4.4.21.2 .42
4.4.21.3 SQL-schema,SQL-data,andSQL-transactionstatements.43
4.4.21.4 .43
4.4.21.5 .43
4.4.21.6 .43
4.4.21.7 .43
4.4.21.8 .44
4.4.21.9 Cursor declaration.44
4.4.21.10 InputparameterstoSQL-statements.44
4.4.21.11 ExtractingcolumnvaluesfromSQLJiterators.44
4.4.21.12 andcursors.44
4.4.22 SQLJ,JDBC,andSQLExceptionsandSQLWarnings.45
4.4.23 Profilegenerationandnaming.45
4.4.24 SQLJapplicationpackaging.46
4.4.25 Profilecustomizerinterface.46
4.4.26 Customizationinterface.47
4.4.26.1 Introductiontocustomizationinterfaces.47
4.4.26.2 Customization usage.47
4.4.26.3 Customization registration.48
5 Lexicalelements.50
5.1 .50
5.2 and.51
6 Scalarexpressions.52
iv ©ISO/IEC2023–Allrightsreserved
ISO/IEC9075-10:2023(E)
6.1 and.52
7 Additionalcommonrules.53
7.1 InvokinganSQL-invokedroutine.53
8 Datamanipulation.54
8.1 .54
8.2 .57
8.3 .61
8.4 .63
9 Control statements.65
9.1 .65
9.2 .67
9.3 .69
10 Transactionmanagement.71
10.1 .71
10.2 .72
10.3 .73
10.4 .74
10.5 .75
11 Embedded SQL.76
11.1 .76
11.2 .78
12 SQLJreservednames.79
12.1 Introductiontoreservednames.79
12.2 Namingruntimelibrarycomponents.79
12.3 Temporaryvariablenames.79
12.4 Classandresourcefilenames.79
12.4.1 Introduction.79
12.4.2 Generated classes.79
12.4.3 Resourcefilesandprofiles.80
13 Commonsubelements.81
13.1 .81
13.2 .82
13.3 .83
13.4 .84
13.5 .85
13.6 .86
13.7 .89
13.8 .90
14 andcontents.93
14.1 .93
14.2 .94
14.3 Generatedconnectionclass.95
14.4 .100
14.5 .102
14.6 Generatedpositionediteratorclass.103
©ISO/IEC2023–Allrightsreserved v
ISO/IEC9075-10:2023(E)
14.7 .105
14.8 Generatednamediteratorclass.106
14.9 .108
14.10 .114
14.11 .115
14.12 .116
14.13 .118
14.14 .122
14.15 .124
15 Packagesqlj.runtime.127
15.1 Overview.127
15.2 SQLJruntimeinterfaces.
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.