Sqlexecdirectw что за ошибка

How To Avoid «Odbc driver returned an error (SQLExecDirectW)» Error When Creating a Report in OBIEE — Oracle Knowledge 8.5.1.6? (Doc ID 2348808.1)

Last updated on SEPTEMBER 07, 2020

Applies to:


Symptoms

On : 8.5.1.5 version, Analytics Reporting and ETL

Error when trying to create a new report in OBIEE the next error appears.

OBIEE> Results > Compound Layout

Error
View Display Error
Odbc driver returned an error (SQLExecDirectW)

Error Details:
Error Codes: OPR40NWY:U9IM8TAC:OI2DL65P

Changes


Cause

To view full details, sign in with your My Oracle Support account.

Don’t have a My Oracle Support account? Click to get started!

In this Document

Symptoms
Changes
Cause
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | | | | Legal Notices | Terms of Use

Источник

Sqlexecdirectw что за ошибка

My method so far to make changes to our existing reports has been to
1. Open the report
2. Modify
(Most, if not all, are Direct Database Requests)
3. Cut and Paste the SQL into my editor (JDeveloper)
4. Fix any issues
5. Run in SQL*Plus
6. Cut and paste back into OBIEE

On occasion, I’ll have to use the Catalog Manager, select report, properties, Edit XML and get the SQL from there. Obviously not the most efficient way, but it works.

Others, like Mr. Berg, have suggested turning the log level to level 2 and capturing the SQL being passed to the database. I’m not that industrious yet.

Anyway, I’ve run across this error a couple of times so far.

When I do number 6 and click on Validate SQL and Retrieve Columns, I get the above mentioned error. Hmmm. I’ve just run this thing in SQL*Plus and it works just fine. The queries are really too big to simply eyeball either.

So I went simple, in the text box I entered SELECT * FROM DUAL and clicked on Validate SQL and Retrieve Columns:

error : Odbc driver returned an error (SQLExecDirectW).
error : State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 17001] Oracle Error code: 933, message: ORA-00933: SQL command not properly ended at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000)
error : SQL Issued:

It appears the query that previously occupied that box is still there. partially.

Mr. Berg suggested clearing the cache, so I went into the Administration tool, Manage, but cache was grayed out. I asked the DBA and Linux guy to pass me the file, but they were being difficult today, so I didn’t get it.

In the short term, I just created a new report appended with » R» (refactored) and moved on to the next one. Hopefully tomorrow I’ll be able to get some answers.

Источник

SQLExecDirectW exception with pyodbc and SQL Server #636

Comments

piskvorky commented Oct 21, 2019

A cursor.execute(«SELECT …») query against SQL Server with pyodbc is giving me this error:

pyodbc.ProgrammingError: (‘42000’, ‘[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]HdfsBridge::recordReaderFillBuffer — Unexpected error encountered filling record reader buffer: NumberFormatException: For input string: «5,41E+18» (107090) (SQLExecDirectW)’)

Any idea where that is coming from? Is it fixable on my (=pyodbc’s) side? (The SQL DB is not under my control.)

Environment

  • Python: Python 3.7.3 (default, Aug 20 2019, 17:04:43) [GCC 8.3.0] on linux
  • pyodbc: pyodbc==4.0.26
  • OS: Ubuntu 19.04
  • DB: SQL Server
  • driver: ODBC Driver 17 for SQL Server

The text was updated successfully, but these errors were encountered:

gordthompson commented Oct 21, 2019

Can you narrow it down to a particular column that causes the error? If so, what is the data type of that column? Also be sure to specify if the query simply retrieves the column directly, or if it tries to do a CAST/CONVERT (or similar) on it.

v-chojas commented Oct 21, 2019

Do you have a repro? That error is coming from the server.

piskvorky commented Oct 21, 2019 •

pyodbc.ProgrammingError: (‘42000’, «[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]External file access failed because the specified path name ‘/OK/FILESERVER/SOMEPATH/2019/10/07’ does not exist. Enter a valid path and try again. (105002) (SQLExecDirectW)»)

pyodbc.ProgrammingError: (‘42000’, ‘[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]HdfsBridge::recordReaderFillBuffer — Unexpected error encountered filling record reader buffer: HadoopExecutionException: Not enough columns in this line. (107090) (SQLExecDirectW)’)

I’m not sure how the SQL server is set up, these logs came from the client, I don’t have direct access to the DB. But googling around, the errors seem related to Parquet or HDFS or Hadoop… maybe some SQL adapter? Is there such thing?

I’ve not seen this before, but I’m thinking the error could be related to the SQL Server’s adapter configuration, rather than pyodbc.

@gordthompson there’s no CAST/CONVERT, this is a straight up SELECT FROM [db_name].[schema_name].[table_name] .

v-chojas commented Oct 21, 2019

You are correct, those error messages are all coming from the server. pyODBC just passes through the query and otherwise has no involvement in this.

gordthompson commented May 29, 2021

Closed due to inactivity. Feel free to re-open with current information if necessary.

© 2022 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

Odbc driver returned an error (SQLExecDirectW).

Error Details
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 17001] Oracle Error code: 12154, message: ORA-12154: TNS:could not resolve the connect identifier specified at OCI call OCIServerAttach. [nQSError: 17014] Could not connect to Oracle database. (HY000)

Answers

It is clear that . Oracle is not connecting.

1) Check RPD Connection pool properties. give correct Datasource name and username/password.

2) If it is not connecting. then problem with tns file.

3)Have you copied tns file oracleBi home location. check once.

Mark if it helps you..

Is there any way , I can check my DAC services are up and running or not in LINUX?

check you tnsnames.ora

find in $ORACLE_HOME/network/admin/tnsnames.ora

find $ORACLE_HOME by echo $ORACLE_HOME

1)How to connect DAC 11g server with fusion middleware(weblogic server)?

Oracle® Fusion Middleware

User’s Guide for Oracle Business Intelligence Data Warehouse

11g Release 1 (11.1.1)

DAC Authentication in Oracle Fusion Middleware (WebLogic Server) Mode

Oracle BI Applications Release (7.9.6.4) Certification Matrix:

Читайте также:  Как распечатать линейку на принтере

This document covers Oracle BI Applications and associated components including:

∙ OEM Informatica PowerCenter 9.0.1 Hot Fix 2 and OEM Informatica PowerCenter 9.1 Hot Fix 2

∙ Oracle Business Intelligence Data Warehouse Administration Console 11g (DAC) version 11.1.1.6.4

Oracle BI Applications 7.9.6.4 is supported with

∙ Oracle Business Intelligence Enterprise Edition version 11.1.1.6.4+ and 11.1.1.7+

(To install Oracle BI Applications on Oracle Business Intelligence Enterprise Edition 11.1.1.7+, see the following document on My Oracle Support:

Installing BI Applications 7.9.6.4 on BI EE 11.1.1.7.0 [ID 1561846.1])

1)I have gone through this document, it doest specify thats i can use DAC 10g with OBIA 7.9.6.4.(if it is possible then whats is the patch number required.)

2)How to connect DAC 11g server with fusion middleware(weblogic server)?

1) According to Certification Matrix of (7.9.6.4) only DAC 11g is possible

2) This process is as follows:

1. DAC Client logs in using FMW authentication:

a. Gets user name and password from user (can be optionally saved on the file

b. Reads the database connection information from the encrypted cwallet.sso file

stored on the file system

c. Logs into the DAC repository.

d. Reads the DAC Server URL from the DAC repository.

e. Authenticates and gets permissions through the DAC Server in the BI domain

using the BI domain URL.

2. DAC Server reads the database connection information from the file system and

connects to the DAC repository upon startup.

3. Automation utilities read the database connection information from the file system

and connect to the DAC repository.

Note: The automation utilities are not interactive

4. DAC Server command line utilities read the DAC Server information from the file

system and send it as a Web service request, which is authenticated with proper

Источник

Драйвер odbc возвратил ошибку sqlexecdirectw oracle bi

Odbc driver returned an error (SQLExecDirectW).

Error Details
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 17001] Oracle Error code: 12154, message: ORA-12154: TNS:could not resolve the connect identifier specified at OCI call OCIServerAttach. [nQSError: 17014] Could not connect to Oracle database. (HY000)

Answers

It is clear that . Oracle is not connecting.

1) Check RPD Connection pool properties. give correct Datasource name and username/password.

2) If it is not connecting. then problem with tns file.

3)Have you copied tns file oracleBi home location. check once.

Mark if it helps you..

Is there any way , I can check my DAC services are up and running or not in LINUX?

check you tnsnames.ora

find in $ORACLE_HOME/network/admin/tnsnames.ora

find $ORACLE_HOME by echo $ORACLE_HOME

1)How to connect DAC 11g server with fusion middleware(weblogic server)?

Oracle® Fusion Middleware

User’s Guide for Oracle Business Intelligence Data Warehouse

11g Release 1 (11.1.1)

DAC Authentication in Oracle Fusion Middleware (WebLogic Server) Mode

Oracle BI Applications Release (7.9.6.4) Certification Matrix:

This document covers Oracle BI Applications and associated components including:

∙ OEM Informatica PowerCenter 9.0.1 Hot Fix 2 and OEM Informatica PowerCenter 9.1 Hot Fix 2

∙ Oracle Business Intelligence Data Warehouse Administration Console 11g (DAC) version 11.1.1.6.4

Oracle BI Applications 7.9.6.4 is supported with

∙ Oracle Business Intelligence Enterprise Edition version 11.1.1.6.4+ and 11.1.1.7+

(To install Oracle BI Applications on Oracle Business Intelligence Enterprise Edition 11.1.1.7+, see the following document on My Oracle Support:

Installing BI Applications 7.9.6.4 on BI EE 11.1.1.7.0 [ID 1561846.1])

1)I have gone through this document, it doest specify thats i can use DAC 10g with OBIA 7.9.6.4.(if it is possible then whats is the patch number required.)

2)How to connect DAC 11g server with fusion middleware(weblogic server)?

1) According to Certification Matrix of (7.9.6.4) only DAC 11g is possible

2) This process is as follows:

1. DAC Client logs in using FMW authentication:

a. Gets user name and password from user (can be optionally saved on the file

b. Reads the database connection information from the encrypted cwallet.sso file

stored on the file system

c. Logs into the DAC repository.

d. Reads the DAC Server URL from the DAC repository.

e. Authenticates and gets permissions through the DAC Server in the BI domain

using the BI domain URL.

2. DAC Server reads the database connection information from the file system and

connects to the DAC repository upon startup.

3. Automation utilities read the database connection information from the file system

and connect to the DAC repository.

Note: The automation utilities are not interactive

4. DAC Server command line utilities read the DAC Server information from the file

system and send it as a Web service request, which is authenticated with proper

Odbc driver returned an error (SQLExecDirectW).

Do you have any idea for the below error

this error occurs for one report in prod,, the same report works fine in Dev

Odbc driver returned an error (SQLExecDirectW).

Error Codes: OPR4ONWY:U9IM8TAC
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 27002] Near : Syntax error [nQSError: 26012] . (HY000)

Best Answer

Check this
ID 1464133.1

IF helps mark

Document says its bug BUG:13737150 and suggesting
Download and apply OBIEE 11.1.1.6.2 BP1. It is fixed in this version

Edited by: Srini VEERAVALLI on Mar 25, 2013 11:42 AM

Read this
http://docs.oracle.com/cd/E23943_01/bi.1111/e16452/bi_plan.htm#CACIBFHF

Edited by: Srini VEERAVALLI on Mar 25, 2013 11:46 AM

Answers

Check this
ID 1464133.1

IF helps mark

Document says its bug BUG:13737150 and suggesting
Download and apply OBIEE 11.1.1.6.2 BP1. It is fixed in this version

Edited by: Srini VEERAVALLI on Mar 25, 2013 11:42 AM

Read this
http://docs.oracle.com/cd/E23943_01/bi.1111/e16452/bi_plan.htm#CACIBFHF

Edited by: Srini VEERAVALLI on Mar 25, 2013 11:46 AM

In that document the solution is for 11.1.6 version

Here in our company, we are using 11.1.5 so Can you please help me for the solution

Before you conclude that you need to upgrade, (which I doubt as dev and prod are usually same versions), I suggest point dev server to production database and see if you are able to recreate the issue in dev.

Or take report XML from dev and copy in prod, see if that resolves the issue in prod.

It might also be a variable not getting populated in prod if used in report.

Функция SQLExecDirect

Соответствия
Представленная версия: соответствие стандартам ODBC 1,0: ISO 92

Сводка
SQLExecDirect выполняет инструкцию доступный, используя текущие значения переменных маркера параметра, если в инструкции существуют какие-либо параметры. SQLExecDirect — самый быстрый способ отправить инструкцию SQL для однократного выполнения.

Синтаксис

Аргументы

статеменсандле
Входной Маркер инструкции.

статементтекст
Входной оператор SQL для выполнения.

TextLength
Входной Длина *статементтекст в символах.

Возвращаемое значение

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE или SQL_PARAM_DATA_AVAILABLE.

Диагностика

Если SQLExecDirect возвращает либо SQL_ERROR, либо SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE можно получить, вызвав SQLGetDiagRec с параметром handletype SQL_HANDLE_STMT и маркером статеменсандле. В следующей таблице перечислены значения SQLSTATE, обычно возвращаемые функцией SQLExecDirect , и объясняется каждый из них в контексте этой функции. Нотация «(DM)» предшествует описаниям SQLSTATE, возвращаемым диспетчером драйверов. Код возврата, связанный с каждым значением SQLSTATE, имеет SQL_ERROR, если не указано иное.

SQLSTATE Ошибка Описание
01000 Общее предупреждение Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.)
01001 Конфликт операций с курсором *Статементтекст содержал инструкцию позиционированного обновления или удаления, и ни одна строка, ни несколько строк не были обновлены или удалены. (Дополнительные сведения об обновлениях более чем в одной строке см. в описании атрибута SQL_ATTR_SIMULATE_CURSOR в SQLSetStmtAttr.)

(Функция возвращает SQL_SUCCESS_WITH_INFO.) 01003 Значение NULL исключено в функции Set Аргумент статементтекст содержал функцию набора (например, AVG, Max, min и т. д.), но не функцию набора Count , а значения аргументов null были исключены до применения функции. (Функция возвращает SQL_SUCCESS_WITH_INFO.) 01004 Строковые данные, усеченные справа Строковые или двоичные данные, возвращаемые для входного/выходного или выходного параметра, привели к усечению непустого символа или двоичных данных, отличных от NULL. Если это строковое значение, оно было усечено по правому краю. (Функция возвращает SQL_SUCCESS_WITH_INFO.) 01006 Привилегия не отменена *Статементтекст содержит инструкцию REVOKE , и пользователь не имеет указанных прав. (Функция возвращает SQL_SUCCESS_WITH_INFO.) 01007 Привилегия не предоставлена * Статементтекст является инструкцией Grant , и пользователю не удалось предоставить указанные права доступа. 01S02 Значение параметра изменено Указанный атрибут инструкции был недопустимым из-за рабочих условий реализации, поэтому было временно заменено аналогичное значение. (SQLGetStmtAttr можно вызвать, чтобы определить, что такое временно заменяющий параметр.) Заменяющее значение допустимо для статеменсандле до тех пор, пока курсор не будет закрыт, после чего атрибут инструкции вернется к предыдущему значению. Атрибуты инструкции, которые могут быть изменены:

SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR

(Функция возвращает SQL_SUCCESS_WITH_INFO.) 01S07 Усечение дробной части Данные, возвращаемые для входного или выходного или выходного параметра, были усечены таким, что дробная часть числового типа данных была усечена, или дробная часть временного компонента времени, отметки времени или типа данных интервала была усечена.

(Функция возвращает SQL_SUCCESS_WITH_INFO.) 07002 Неверное поле количества число параметров, указанных в SQLBindParameter , меньше числа параметров в инструкции SQL, содержащейся в * статементтекст.

SQLBindParameter был вызван с параметервалуептр , для которого задан пустой указатель, StrLen_or_IndPtr не задано значение SQL_NULL_DATA или SQL_DATA_AT_EXEC, а инпутаутпуттипе не задано значение SQL_PARAM_OUTPUT, чтобы число параметров, указанное в SQLBindParameter , было больше числа параметров в инструкции SQL, содержащейся в *статементтекст. 07006 Нарушение атрибута ограниченного типа данных Значение данных, определяемое аргументом ValueType в SQLBindParameter для привязанного параметра, не может быть преобразовано в тип данных, определяемый аргументом ParameterType в SQLBindParameter.

Значение данных, возвращаемое для параметра, привязанного как SQL_PARAM_INPUT_OUTPUT или SQL_PARAM_OUTPUT, не может быть преобразовано в тип данных, определяемый аргументом ValueType в SQLBindParameter.

(Если не удалось преобразовать значения данных для одной или нескольких строк, но одна или несколько строк были успешно возвращены, эта функция возвращает SQL_SUCCESS_WITH_INFO.) 07007 Нарушение значения ограниченного параметра Тип параметра SQL_PARAM_INPUT_OUTPUT_STREAM используется только для параметра, который отправляет и получает данные в частях. Для этого типа параметра не допускается использование присоединенного буфера ввода.

Эта ошибка возникает, если тип параметра — SQL_PARAM_INPUT_OUTPUT, а * StrLen_or_IndPtr , указанный в SQLBindParameter , не равен SQL_NULL_DATA, SQL_DEFAULT_PARAM, SQL_LEN_DATA_AT_EXEC (len) или SQL_DATA_AT_EXEC. 07S01 Недопустимое использование параметра по умолчанию Значение параметра, заданное с помощью SQLBindParameter, было SQL_DEFAULT_PARAM, а соответствующий параметр не имел значения по умолчанию. 08S01 Сбой канала связи Канал связи между драйвером и источником данных, к которому был подключен драйвер, был неудачен до завершения обработки функции. 21S01 Список вставляемых значений не соответствует списку столбцов *Статементтекст содержит инструкцию INSERT , а число вставляемых значений не соответствует степени производной таблицы. 21S02 Степень производной таблицы не соответствует списку столбцов *статементтекст содержал инструкцию CREATE VIEW , а неквалифицированный список столбцов (число столбцов, указанных для представления в аргументах идентификатора столбца в инструкции SQL) содержит больше имен, чем число столбцов в производной таблице, определенное аргументом спецификации запроса SQL инструкции. 22001 Строковые данные, усечение справа Присвоение символьного или двоичного значения столбцу привело к усечению непустых символьных данных или двоичных данных, отличных от NULL. 22002 Требуемая, но не определенная переменная индикатора Данные NULL были привязаны к выходному параметру, StrLen_or_IndPtr , установленный SQLBindParameter , был пустым указателем. 22003 Числовое значение вне допустимого диапазона *статементтекст содержал инструкцию SQL, содержащую привязанный числовой параметр или литерал, и значение, которое привело к усечению всего (в отличие от дробной части) числа, которое будет обрезано при присваивании соответствующему столбцу таблицы.

Возврат числового значения (в виде числового или строкового) для одного или нескольких входных, выходных или выходных параметров приведет к усечению всего числа (в отличие от дробной части). 22007 Недопустимый формат даты и времени *статементтекст содержит инструкцию SQL, содержащую структуру даты, времени или метки времени в качестве привязанного параметра, а параметр, соответственно, имеет недопустимую дату, время или отметку времени.

Входной/выходной или выходной параметр привязан к структуре даты, времени или метки времени C, а значение в возвращенном параметре было соответственно недействительной дате, времени или метке времени. (Функция возвращает SQL_SUCCESS_WITH_INFO.) 22008 Переполнение поля даты и времени *статементтекст содержит инструкцию SQL, содержащую выражение datetime, которое при вычислении привело к недопустимой структуре даты, времени или метки времени.

Выражение DateTime, вычисленное для входного/выходного или выходного параметра, привело к недопустимой структуре даты, времени или метки времени C. 22012 Деление на ноль *статементтекст содержит инструкцию SQL, содержащую арифметическое выражение, которое вызывало деление на ноль.

Арифметическое выражение, вычисленное для входного/выходного или выходного параметра, привело к делению на нуль. 22015 Переполнение поля интервала * статементтекст содержал точный числовой параметр или интервал, который при преобразовании в интервал SQL тип данных привел к утрате значащих цифр.

* Статементтекст содержал параметр интервала с более чем одним полем, которое при преобразовании в числовой тип данных столбца не имело представления числового типа данных.

* статементтекст содержал данные параметров, которые были присвоены интервалу SQL типу, и не было представления значения типа C в поле interval SQL type.

назначение входного/выходного или выходного параметра, который был точным числом или интервалом, SQL тип с типом interval C привел к утрате значащих цифр.

Если входной/выходной или выходной параметр был назначен структуре интервала C, в структуре данных интервала отсутствовало представления данных. 22018 Недопустимое символьное значение для спецификации приведения * статементтекст содержал тип C, который был точным или приблизительным числовым, типом данных datetime или интервалом времени; тип SQL столбца был символьным типом данных, а значение в столбце не является допустимым литералом для привязанного типа C.

при возвращении входного/выходного или выходного параметра тип SQL был точным или приблизительным числовым, типом datetime или интервалом данных. Тип C — SQL_C_CHAR; и значение в столбце не было допустимым литералом связанного SQL типа. 22019 Недопустимый escape-символ *статементтекст содержит инструкцию SQL, содержащую предикат LIKE с ESCAPE -символом в предложении where , а длина escape-символа после escape -последовательности не равна 1. 22025 Недопустимая escape-последовательность *статементтекст содержит инструкцию SQL, которая содержит слово « escape- escape-символ шаблона» в предложении where , а символ, следующий за ESCAPE-символом в значении шаблона, не является одним из «%» или «_». 23000 Нарушение ограничения целостности *статементтекст содержит инструкцию SQL, содержащую параметр или литерал. Значение параметра имело значение NULL для столбца, определенного как NOT NULL в связанном столбце таблицы, было указано повторяющееся значение для столбца, ограничение которого должно содержать только уникальные значения, или нарушено какое-либо другое ограничение целостности. 24 000 Недопустимое состояние курсора Курсор был помещен в статеменсандле by SQLFetch или SQLFetchScroll. Эта ошибка возвращается диспетчером драйверов, если SQLFetch или SQLFetchScroll не вернул SQL_NO_DATA, и возвращается драйвером, если SQLFetch или SQLFetchScroll вернул SQL_NO_DATA.

Курсор был открыт, но не позиционирован на статеменсандле.

*Статементтекст содержал инструкцию позиционированного обновления или удаления, и курсор был помещен перед началом результирующего набора или после конца результирующего набора. 34000 Недопустимое имя курсора *Статементтекст содержал инструкцию позиционированного обновления или удаления, а курсор, на который ссылается выполняемая инструкция, не был открыт. 3D000 Недопустимое имя каталога В статементтекст указано недопустимое имя каталога. 3F000 Недопустимое имя схемы В статементтекст указано недопустимое имя схемы. 40001 Сбой сериализации Произошел откат транзакции из-за взаимоблокировки ресурсов с другой транзакцией. 40003 Неизвестное завершение инструкции Не удалось выполнить связанное соединение во время выполнения этой функции, и состояние транзакции не может быть определено. 42000 Синтаксическая ошибка или нарушение прав доступа *статементтекст содержит инструкцию SQL, которая не была доступныйа или не содержит синтаксическую ошибку.

у пользователя отсутствует разрешение на выполнение инструкции SQL, содержащейся в *статементтекст. 42S01 Базовая таблица или представление уже существует *Статементтекст содержит инструкцию CREATE TABLE или Create View , а указанное имя таблицы или представления уже существует. 42S02 Базовая таблица или представление не найдены *Статементтекст содержит инструкцию DROP TABLE или DROP VIEW , а указанное имя таблицы или представления не существует.

*Статементтекст содержит инструкцию ALTER TABLE , а указанное имя таблицы не существует.

*Статементтекст содержал инструкцию Create View , а имя таблицы или представления, определенное спецификацией запроса, не существовало.

*Статементтекст содержит инструкцию CREATE INDEX , а указанное имя таблицы не существует.

*Статементтекст содержит инструкцию Grant или REVOKE , а указанное имя таблицы или представления не существует.

*Статементтекст содержит инструкцию SELECT , а указанное имя таблицы или представления не существует.

*Статементтекст содержит инструкцию Delete, INSERT или Update , а указанное имя таблицы не существует.

*Статементтекст содержит оператор CREATE TABLE , а таблица, указанная в ограничении (ссылающаяся на таблицу, отличную от создаваемой), не существует.

*Статементтекст содержит инструкцию CREATE SCHEMA , а указанное имя таблицы или представления не существует. 42S11 Индекс уже существует *Статементтекст содержит инструкцию CREATE INDEX , а указанное имя индекса уже существует.

*Статементтекст содержит инструкцию CREATE SCHEMA , а указанное имя индекса уже существует. 42S12 Индекс не найден *Статементтекст содержит инструкцию DROP INDEX , а указанное имя индекса не существует. 42S21 Столбец уже существует *Статементтекст содержит инструкцию ALTER TABLE , а столбец, указанный в предложении Add , не уникален или определяет существующий столбец в базовой таблице. 42S22 Столбец не найден *Статементтекст содержит инструкцию CREATE INDEX , а одно или несколько имен столбцов, указанных в списке столбцов, не существуют.

*Статементтекст содержит инструкцию Grant или REVOKE , и указанное имя столбца не существует.

*Статементтекст содержит инструкцию SELECT, Delete, INSERT или Update , а указанное имя столбца не существует.

*Статементтекст содержит инструкцию CREATE TABLE , а столбец, указанный в ограничении (ссылающийся на таблицу, отличную от создаваемой), не существует.

*Статементтекст содержит инструкцию CREATE SCHEMA , а указанное имя столбца не существует. 44000 Нарушение параметра WITH CHECK OPTION Аргумент статементтекст содержал инструкцию INSERT , выполненную в просматриваемой таблице, или таблицу, производную от просматриваемой таблицы, созданной с помощью параметра WITH CHECK, что одна или несколько строк, затронутых инструкцией INSERT , больше не будут присутствовать в просматриваемой таблице.

Аргумент статементтекст содержал инструкцию Update , выполненную в просматриваемой таблице, или таблицу, производную от просматриваемой таблицы, созданной с помощью параметра WITH CHECK, что одна или несколько строк, затронутых инструкцией Update , больше не будут присутствовать в просматриваемой таблице. HY000 Общая ошибка Произошла ошибка, для которой нет определенного SQLSTATE и для которого не определен SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое функцией SQLGetDiagRec в буфере * MessageText , описывает ошибку и ее причину. HY001 Ошибка выделения памяти Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции. HY008 Operation canceled Асинхронная обработка включена для статеменсандле. Функция была вызвана, и до ее завершения была вызвана SQLCancel или склканцелхандле для статеменсандле. Затем функция была вызвана в статеменсандле.

Функция была вызвана и до ее завершения была вызвана SQLCancel или склканцелхандле в статеменсандле из другого потока многопоточного приложения. HY009 Недопустимое использование пустого указателя (DM) *статементтекст был пустым указателем. HY010 Ошибка последовательности функций (DM) вызвана асинхронно исполняемая функция для маркера соединения, связанного с статеменсандле. Эта асинхронная функция все еще выполнялась при вызове функции SQLExecDirect .

(DM) SQLExecute, SQLExecDirect или SQLMoreResults были вызваны для статеменсандле и возвращены SQL_PARAM_DATA_AVAILABLE. Эта функция была вызвана до получения данных для всех потоковых параметров.

(DM) вызывается асинхронно исполняемая функция (не эта одна) для статеменсандле и все еще выполнялась при вызове этой функции.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations или SQLSetPos были вызваны для статеменсандле и возвращены SQL_NEED_DATA. Эта функция была вызвана перед отправкой данных для всех параметров или столбцов данных, выполняемых во время выполнения. HY013 Ошибка управления памятью Не удалось обработать вызов функции, так как не удалось получить доступ к базовым объектам памяти, возможно, из-за нехватки памяти. HY090 Недопустимая длина строки или буфера (DM) аргумент TextLength был меньше или равен 0, но не равен SQL_NTS.

Значение параметра, заданное с помощью SQLBindParameter, является пустым указателем, а значение длины параметра не равно 0, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM или меньше или равно SQL_LEN_DATA_AT_EXEC_OFFSET.

Значение параметра, заданное с помощью SQLBindParameter, не является пустым указателем; тип данных C — SQL_C_BINARY или SQL_C_CHAR; и значение длины параметра было меньше 0, но не было SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM или меньше или равно SQL_LEN_DATA_AT_EXEC_OFFSET.

Значение длины параметра, связанное с SQLBindParameter , было установлено в SQL_DATA_AT_EXEC; тип SQL: SQL_LONGVARCHAR, SQL_LONGVARBINARY или тип данных long, относящийся к источнику данных; а тип сведений SQL_NEED_LONG_DATA_LEN в SQLGetInfo — «Y». HY105 Недопустимый тип параметра Значение, указанное для аргумента инпутаутпуттипе в SQLBindParameter , было SQL_PARAM_OUTPUT, а параметр является входным параметром. HY109 Недопустимое расположение курсора *Статементтекст содержал инструкцию позиционированного обновления или удаления, и курсор был размещен (по SQLSetPos или SQLFetchScroll) в строке, которая была удалена или не может быть получена. HY117 Подключение приостановлено из-за неизвестного состояния транзакции. Допускаются только функции отключения и только для чтения. (DM) Дополнительные сведения о состоянии SUSPENDED см. в разделе функция SQLEndTran. HYC00 Необязательная функция не реализована Сочетание текущих параметров атрибутов SQL_ATTR_CONCURRENCY и SQL_ATTR_CURSOR_TYPE не поддерживалось драйвером или источником данных.

Атрибуту инструкции SQL_ATTR_USE_BOOKMARKS было присвоено значение SQL_UB_VARIABLE, а атрибуту инструкции SQL_ATTR_CURSOR_TYPE задан тип курсора, для которого драйвер не поддерживает закладки. HYT00 Время ожидания истекло Время ожидания запроса истекло до того, как источник данных вернул результирующий набор. Период ожидания задается через SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT. HYT01 Время ожидания подключения истекло Время ожидания соединения истекло до ответа источника данных на запрос. Время ожидания соединения задается через SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. IM001 Драйвер не поддерживает эту функцию (DM) драйвер, связанный с статеменсандле , не поддерживает функцию. IM017 Опрос отключен в режиме асинхронного уведомления При использовании модели уведомления опрос отключен. IM018 Склкомплетеасинк не был вызван для завершения предыдущей асинхронной операции с этим обработчиком. Если предыдущий вызов функции в обработчике возвращает SQL_STILL_EXECUTING и если включен режим уведомления, то для обработки после обработки и завершения операции необходимо вызвать склкомплетеасинк .

Комментарии

приложение вызывает SQLExecDirect для отправки оператора SQL в источник данных. Дополнительные сведения о прямом выполнении см. в разделе прямое выполнение. драйвер изменяет инструкцию для использования формы SQL, используемой источником данных, а затем отправляет его в источник данных. В частности, драйвер изменяет escape-последовательности, используемые для определения определенных функций в SQL. Синтаксис escape-последовательностей см. в разделе Escape-последовательности в ODBC.

приложение может включать один или несколько маркеров параметров в оператор SQL. чтобы включить маркер параметра, приложение внедряет вопросительный знак (?) в инструкцию SQL в соответствующей позиции. Дополнительные сведения о параметрах см. в разделе Параметры инструкции.

если инструкция SQL является инструкцией SELECT и если приложение с именем SQLSetCursorName связывает курсор с инструкцией, то драйвер использует указанный курсор. В противном случае драйвер создает имя курсора.

если источник данных находится в режиме фиксации вручную (требует явной инициации транзакции) и транзакция еще не запущена, драйвер инициирует транзакцию перед отправкой инструкции SQL. Дополнительные сведения см. в разделе режим фиксации вручную.

Если приложение использует SQLExecDirect для отправки инструкций commit или ROLLBACK , оно не будет взаимодействовать между продуктами СУБД. Для фиксации или отката транзакции приложение вызывает SQLEndTran.

Если SQLExecDirect встречает параметр данных при выполнении, он возвращает SQL_NEED_DATA. Приложение отправляет данные с помощью метод SQLParamData и SQLPutData. См. раздел SQLBindParameter, метод SQLParamData, SQLPutDataи Отправка длинных данных.

Если SQLExecDirect выполняет инструкцию обновления, вставки или удаления, которая не влияет ни на какие строки в источнике данных, вызов SQLExecDirect возвращает SQL_NO_DATA.

если значение атрибута оператора SQL_ATTR_PARAMSET_SIZE больше 1, а инструкция SQL содержит по крайней мере один маркер параметра, SQLExecDirect будет выполнять инструкцию SQL один раз для каждого набора значений параметров из массивов, на которые указывает аргумент параметервалуепоинтер в вызове SQLBindParameter. Дополнительные сведения см. в разделе массивы значений параметров.

Если закладки включены и выполняется запрос, который не поддерживает закладки, драйвер должен попытаться привести среду к той, которая поддерживает закладки, изменив значение атрибута и возвращая SQLSTATE 01S02 (значение параметра изменено). Если атрибут не может быть изменен, драйвер должен возвращать значение SQLSTATE HY024 (недопустимое значения атрибута).

при использовании пулов соединений приложение не должно выполнять инструкции SQL, которые изменяют базу данных или контекст базы данных, например инструкцию USE database в SQL Server, которая изменяет каталог, используемый источником данных.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector