Metadata Function
The sysibm.Metadata function is an SPL routine that can be called by .NET Core Provider Driver for JDBC and SQL applications to dynamically retrieve database metadata. The Metadata routine is automatically created in every database of HCL OneDB™ instances that are configured as DRDA® application servers. The client application must specify the 'sysibm' owner name to invoke this function from an ANSI-compliant database.
It has the following routine definition:
create procedure sysibm.METADATA() returning integer as allProceduresAreCallable, integer as allTablesAreSelectable, integer as nullsAreSortedHigh, integer as nullsAreSortedLow, integer as nullsAreSortedAtStart, integer as nullsAreSortedAtEnd, integer as usesLocalFiles, integer as usesLocalFilePerTable, integer as storesUpperCaseIdentifiers, integer as storesLowerCaseIdentifiers, integer as storesMixedCaseIdentifiers, integer as storesLowerCaseQuotedIdentifiers, integer as storesMixedCaseQuotedIdentifiers, lvarchar(4096) as getSQLKeywords, varchar(100) as getNumericFunctions, varchar(100) as getStringFunctions, varchar(100) as getSystemFunctions, varchar(100) as getTimeDateFunctions, varchar(25) as getSearchStringEscape, varchar(25) as getExtraNameCharacters, integer as supportsAlterTableWithAddColumn, integer as supportsAlterTableWithDropColumn, integer as supportsConvert, varchar(255) as supportsConvertType, integer as supportsDifferentTableCorrelationNames, integer as supportsExpressionsInOrderBy, integer as supportsOrderByUnrelated, integer as supportsGroupBy, integer as supportsGroupByUnrelated, integer as supportsGroupByBeyondSelect, integer as supportsMultipleResultSets, integer as supportsMultipleTransactions, integer as supportsCoreSQLGrammar, integer as supportsExtendedSQLGrammar, integer as supportsANSI92IntermediateSQL, integer as supportsANSI92FullSQL, integer as supportsIntegrityEnhancementFacility, integer as supportsOuterJoins, integer as supportsFullOuterJoins, integer as supportsLimitedOuterJoins, varchar(50) as getSchemaTerm, varchar(50) as getProcedureTerm, varchar(50) as getCatalogTerm, integer as isCatalogAtStart, varchar(50) as getCatalogSeparator, integer as supportsSchemasInDataManipulation, integer as supportsSchemasInProcedureCalls, integer as supportsSchemasInTableDefinitions, integer as supportsSchemasInIndexDefinitions, integer as supportsSchemasInPrivilegeDefinitions, integer as supportsCatalogsInDataManipulation, integer as supportsCatalogsInProcedureCalls, integer as supportsCatalogsInTableDefinitions, integer as supportsCatalogsInIndexDefinitions, integer as supportsCatalogsInPrivilegeDefinitions, integer as supportsPositionedDelete, integer as supportsPositionedUpdate, integer as supportsSelectForUpdate, integer as supportsStoredProcedures, integer as supportsSubqueriesInComparisons, integer as supportsUnion, integer as supportsUnionAll, integer as supportsOpenCursorsAcrossCommit, integer as supportsOpenCursorsAcrossRollback, integer as supportsOpenStatementsAcrossCommit, integer as supportsOpenStatementsAcrossRollback, integer as getMaxBinaryLiteralLength, integer as getMaxCharLiteralLength, integer as getMaxColumnNameLength, integer as getMaxColumnsInGroupBy, integer as getMaxColumnsInIndex, integer as getMaxColumnsInOrderBy, integer as getMaxColumnsInSelect, integer as getMaxColumnsInTable, integer as getMaxConnections, integer as getMaxCursorNameLength, integer as getMaxIndexLength, integer as getMaxSchemaNameLength, integer as getMaxProcedureNameLength, integer as getMaxCatalogNameLength, integer as getMaxRowSize, integer as doesMaxRowSizeIncludeBlobs, integer as getMaxStatementLength, integer as getMaxStatements, integer as getMaxTableNameLength, integer as getMaxTablesInSelect, integer as getMaxUserNameLength, integer as getDefaultTransactionIsolation, integer as supportsTransactions, varchar(50) as supportsTransactionIsolationLevel, integer as supportsDataDefinitionAndDataManipulationTransactions, integer as supportsDataManipulationTransactionsOnly, integer as dataDefinitionCausesTransactionCommit, integer as dataDefinitionIgnoredInTransactions, varchar(100) as supportsResultSetType, varchar(100) as supportsResultSetConcurrency, varchar(100) as ownUpdatesAreVisible, varchar(100) as ownDeletesAreVisible, varchar(100) as ownInsertsAreVisible, varchar(100) as othersUpdatesAreVisible, varchar(100) as othersDeletesAreVisible, varchar(100) as othersInsertsAreVisible, varchar(100) as updatesAreDetected, varchar(100) as deletesAreDetected, varchar(100) as insertsAreDetected, integer as supportsBatchUpdates, integer as supportsSavepoints, integer as supportsGetGeneratedKeys