Sql error 17009 99999 закрытая команда

У меня есть вызов функции PL/SQL FUNCTION F_IsDemandeDeLitFromHosp(i_NoMvtHosp IN MVTHOSP.NOMVTHOSP%TYPE )RETURN BOOLEAN IS v_Found NUMBER := 0; BEGIN BEGIN SELECT COUNT(1) INTO v_Found FROM IC...

У меня есть вызов функции PL/SQL

FUNCTION F_IsDemandeDeLitFromHosp(i_NoMvtHosp   IN MVTHOSP.NOMVTHOSP%TYPE  
)RETURN BOOLEAN
IS
v_Found NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(1) INTO v_Found
FROM ICSF.T_DEMANDE_LIT D, MVTUS U, MVTHOSP H
WHERE H.NOMVTHOSP = i_NoMvtHosp
AND H.NOMVTHOSP = U.NOMVTHOSP
AND U.NOMVTUS = D.NOMVTUS
AND U.RANG <> '0000000000'
AND H.RANG = '0000100000'
AND NVL (D.ETAT, ' ') <> 'X'
AND NVL (U.ETAT, ' ') <> 'X'
AND NVL (H.ETAT, ' ') <> 'X'
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
IF v_Found > 0 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END F_IsDemandeDeLitFromHosp;

Я пытаюсь написать службу, чтобы получить логическое значение в ответ. i_NoMvtHosp — это CHAR(10 BYTE) и вот вызов моей функции:

@Override
public DemandeDeLitFromHospit isDemandeDelitFromHosp(String noMvtHosp) {
final ProcedureRequest request = new ProcedureRequest(PK.GET_IS_DEMANDE_DE_LIT_FROM_HOSP.getPackageName(), PK.GET_IS_DEMANDE_DE_LIT_FROM_HOSP.getMethodeName());
request.addInParam("i_NoMvtHosp", noMvtHosp);
DemandeDeLitFromHospit demande = new DemandeDeLitFromHospit();
demande.setIsDemandeDeLitFromHosp((Boolean)callFunction(request, new CallableStatementCallback<Boolean>() {

public Boolean doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
cs.execute();
return Boolean.valueOf(cs.getResultSet().toString());
}
}));
return demande;
}

И у меня есть эта ошибка:

org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; Type de colonne non valide: 1111; nested exception is java.sql.SQLException: Type de colonne non valide: 1111
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1032)
at fr.mckesson.framework.persistence.plsql.AbstractProcedureDao.callFunction(AbstractProcedureDao.java:317)
at fr.mckesson.business.venue.clinique.evenement.dao.implementation.DemandeLitDAO.isDemandeDelitFromHosp(DemandeLitDAO.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Где я не прав?

Содержание

  1. Как заставить EntityManager выполнять собственный sql
  2. Ошибка SQL: 23503, SQLState: 23503 в приложении SpringBoot 2.1.4.RELEASE
  3. SY agent reports error SQL State = 99999 , SQL Error Code = 17026
  4. Troubleshooting
  5. Problem
  6. Symptom
  7. Cause
  8. Diagnosing The Problem
  9. Resolving The Problem
  10. Ошибка SQL: 17059, SQLState: 99999: org.hibernate.util.JDBCExceptionReporter-[ERROR]: не удалось преобразовать во внутреннее представление
  11. SQL state [99999]; error code [17026]; Numeric Overflow; nested exception is java.sql.SQLException:

Как заставить EntityManager выполнять собственный sql

Прежде всего, извинитесь за грамматические ошибки, которые вы можете допустить. Мой английский не очень хорош.

Я создаю конструктор таблиц для динамического создания таблиц. Моя проблема в том, что EntityManager имеет значение null, и я не знаю, почему.

Я читал, что вы можете создать entityManager с параметром entityManagerFactory и передачей, который уже есть в моем application.properties.

Или я могу внедрить PersistenceContext, но когда я пытаюсь выполнить предложение sql, EntityManager имеет значение null.

Как я могу это решить?

Обновлено: Я сделал все, что вы сказали, и показать следующее:

Извините, я редактирую и добавляю отредактированный код для сортировки всего кода и выпусков: Вот мой код:

Ваш класс TableGeoJsonGenerator должен быть Bean . Поместите одну из следующих аннотаций на свой класс: @Component , @Service . После этого у вас должен быть автоматически подключен EntityManager .

Когда вы работаете с Spring Boot, обычно вам не нужно создавать EntityManagerFactory самостоятельно. Если вы установите правильные параметры базы данных в файле свойств, Spring Boot автоматически создаст EntityManagerFactory Bean. Затем в классе Bean вы можете автоматически связать свой EntityManager с аннотацией @PersistenceContext .

Служба и утилита не могут быть одновременно: ошибка при создании bean-компонента с именем служебного класса tableGeoJsonGenerator, экземпляр которого не может быть создан

Я изменил свой код, как вы говорите, @Grechka Vassili и менеджер сущностей имеет значение null

во-первых, вам не нужен конструктор вашего класса TableGeoJsonGenerator , потому что spring-boot сгенерирует его для вас с автоматически подключенным EntityManager. Во-вторых, я почти уверен, что у вас есть NPE, потому что вы создаете свой экземпляр TableGeoJsonGenerator напрямую через конструктор. Но теперь ваш класс TableGeoJsonGenerator является пружиной Bean , поэтому вы должны автоматически связать его, если хотите его использовать. Помните, что вы можете автоматически связать TableGeoJsonGenerator в классе, который является Spring Bean!

пожалуйста, покажите нам, как вы используете свой TableGeoJsonGenerator класс.

где ваш метод entityManagerFactory()?

Я думаю : + Сначала создайте EntityManagerFactory

EntityManagerFactory entitymanagerfactory = Persistence.createEntityManagerFactory(«your.package»);

затем создайте entityManager :

public static EntityManager getEntityManager()

Я думаю, что когда вы используете весеннюю загрузку и у вас есть конфигурация базы данных в файле application.properties, у вас уже есть фабрика entitymanager, которую вы можете автоматически подключить. Вам не нужно создавать его самостоятельно.

Спасибо! Теперь я создаю свой EntityManagerFactory, но выбрасываю исключение: нет поставщика постоянства для EntityManager с именем com.application.maps. Почему не работает с моим пакетом??

Да, я использую весеннюю загрузку, но я использую Autowired инъекции и не работает

Вы добавили в свой pom: spring-orm, hibernate-core. И использовать spring-boot-starter-parent в качестве родителя?

Я предполагаю, что это ваша проблема. Взято из документации ломбока.

A utility class cannot be instantiated. By marking your class with @UtilityClass, lombok will automatically generate a private constructor that throws an exception, flags as error any explicit constructors you add, and marks the class final. If the class is an inner class, the class is also marked static.

Мое предположение здесь следующее. Spring может вводить bean-компоненты только в объекты, управляемые Spring. Ваш класс TableGeoJsonGenerator не является управляемым компонентом, потому что Spring не может его создать.

Вам нужно удалить @UtilityClass и добавить одну из аннотаций управляемого компонента, например @Service @Controller и т. д. и т. д.

При определении свойств jpa в application.properties spring boot автоматически создаст для вас EntityManager с определенными свойствами.

Затем это может быть @Autowired в любой spring managed bean . Сначала вам нужно сделать ваш класс управляемым.

Я сделал, как вы можете видеть в отредактированном коде, но EntityManager по-прежнему имеет значение null, почему? мой класс должен расширять другой или реализовывать что-то, чтобы иметь EntityManager, который не должен быть нулевым?

хорошо, теперь мы решили одну проблему, новая проблема заключается в том, «почему автосвязанный bean-компонент является нулевым в управляемом классе Spring». Теперь вы можете сделать следующее. Нам нужно увидеть структуру вашего пакета. Убедитесь, что ваш класс с аннотациями @Service находится в пакете ниже вашего класса с аннотациями @SpringBootApplication . Нам также нужно полное сообщение об ошибке нулевого указателя. Вы можете проверить журналы, которые получает ваш класс @Service . Я также хотел бы увидеть, что класс, который вызывает ваш TableGeoJsonGenerator , автоматически подключается к этому классу в генераторе или он делает «новый»?

нам нужно увидеть полную картину, а не только один класс и сообщение об ошибке.

Источник

Ошибка SQL: 23503, SQLState: 23503 в приложении SpringBoot 2.1.4.RELEASE

У меня есть приложение веб-службы SpringBoot 2.1.4.RELEASE RESTful, использующее Spring Initializer, встроенный Tomcat, механизм шаблонов Thymeleaf и пакет в виде исполняемого файла JAR.

У меня есть этот класс:

и этот метод в репозитории:

Я создал тест Junit:

когда я сохраняю объект, все в порядке, но когда я вызываю метод, changeMenuNotificationReadStatus я получаю эту ошибку:

Идентификатор не генерируется, когда вы это делаете MenuAlertNotification menuAlertNotification = new MenuAlertNotification (menuAlert); , и Long menuAlertNotificationId = menuAlertNotification.getId(); это всегда будет возвращаться null .

Вы должны изменить вторую строку вашего теста junit на

Я предполагаю, что ваша служба menuAlertNotificationService.save(menuAlertNotification); возвращает что-то вроде return notificationRepo.save(entity) .

Таким образом, у вас есть новый объект, заполненный идентификатором после вставки строки, и, следовательно, не будет получено указанное исключение.

Проблема в том, что вы используете базу данных в памяти, и когда метод Test завершен, Junit удаляет все таблицы, но не в правильном порядке.

Код сервисного уровня должен зависеть от репозитория. Однако для тестирования уровня службы вам не нужно знать или заботиться о том, как реализован уровень сохраняемости.

В идеале вы должны иметь возможность писать и тестировать наш код сервисного уровня без подключения к нашему полному персистентному уровню.

Для этого вы можете использовать поддержку имитации, предоставляемую Spring Boot Test.

Ошибка вызвана тем, что база данных собирается удалить запись, на которую ссылаются другие записи с внешним ключом. (Ограничение внешнего ключа)

Я предполагаю, что в вашем тестовом примере перед фрагментом кода, который вы проанализировали здесь, есть код операции удаления, что-то вроде

Spring JPA не будет выполнять этот оператор немедленно при наличии транзакции. После этого Spring JPA встретил запрос JPQL (changeMenuNotificationReadStatus), а затем сбросил все кэшированные операторы в db. В это время оператор удаления выполнялся точно. Затем было исключено исключение ограничения внешнего ключа.

Как сказал Цзянь, ошибка вызывается не вызовом changeMenuNotificationReadStatus, а, вероятно, предыдущим оператором, который не был сброшен.

Что-то генерирует этот оператор удаления, который отвечает за нарушение ограничения FK:

В своих тестах вы могли бы регулярно использовать saveAndFlush вместо save , и flush методы, чтобы выдавать запросы на изменение SQL и видеть, в чем проблема.

Здесь JPA пытается удалить MenuAlert прежде, чем удалить ссылку MenuAlertNotification , поэтому ограничения FK блокируются, как вы, вероятно, знаете.

Поскольку уведомление не имеет смысла для удаленного оповещения, вы также можете каскадировать удаление:

или измените действие ограничения FK ON DELETE на уровне базы данных: CASCADE удалит ссылающиеся MenuAlertNotification s, а SET NULL очистит ассоциацию, установив null для ссылки MenuAlertNotification.menuAlert .

Вы также можете написать код Java для удаления MenuAlertNotification s перед MenuAlert , в зависимости от условий.

Мне было бы любопытно прочитать весь код тестирования.

Источник

SY agent reports error SQL State = 99999 , SQL Error Code = 17026

Troubleshooting

Problem

The Summarization and Pruning agent connected to an Oracle database is encountering an error when attempting to aggregate data in a table.

Symptom

Isolate the problem table by reviewing the $CANDLEHOME/logs/ _sy_java_5*.log file that was updated during the latest SY agent run.

Example of the error seen in the SY Java log:

== 220408 t=work2 work2 — Examining table : (KSG_REGION_SUMMARY)

== 220458 t=work2 EXCEPTION: Stmt: (KSG_REGION_SUMMARY.Sel1) Row: (1) Column: (Total_Floating_IP_Count,i) Value: (0)

== 220459 t=work2 SQLException occured. SQL State = 99999 , SQL Error Code = 17026

== 220460 t=work2 java.sql.SQLException: Numeric Overflow

== 220461 t=work2 EXCEPTION: Failed to create aggregates for node: (abcd:hostname:SG)

Cause

The SQL State and SQL Error Code indicates invalid data was inserted into the table by an agent server.

The important parts to the message above:
Examining table : (KSG_REGION_SUMMARY) # Represents the table containing the invalid data
Column: (Total_Floating_IP_Count,i) # Represents the column in the table that contains invalid data
Failed to create aggregates for node: (nfv2:hostname:SG) # Represents the node that caused the invalid insert

Diagnosing The Problem

It is necessary to confirm what is considered valid data for the column by gathering the following information about the table.

  1. Gather the data definition for the table
  2. Confirm the data type for the column using a SQL SELECT statement that gathers distinct information regarding the data stored in the column

An example of the SELECT statement constructed to isolate invalid data stored in the «Total_Floating_IP_Count». The data definition shows the data type for the column is Integer.

select distinct NODE, min(Total_Floating_IP_Count) as MIN_VALUE, max(Total_Floating_IP_Count) as MAX_VALUE from ITMUSER.KSG_REGION_SUMMARY group by Node

Resolving The Problem

The SELECT statement indicated there was at least 1 row in the KSG_REGION_SUMMARY table where the value stored in the column Total_Floating_IP_Count was not an integer.

The error regarding the Summarization and Pruning Agent was resolved by deleting all rows in the KSG_REGION_SUMMARY table that contained invalid values in the Total_Floating_IP_Count column:

Источник

Ошибка SQL: 17059, SQLState: 99999: org.hibernate.util.JDBCExceptionReporter-[ERROR]: не удалось преобразовать во внутреннее представление

Получение исключения из запроса гибернации ниже при вызове API.

метод класса дао:

запрос: String fetch_ChangeLog = «из ErmChangeLog p, где p.instanceKey =:instanceKey»;

Похоже, ваши параметры не соответствуют типам данных, ожидаемым в запросе. Можете ли вы попробовать Integer вместо Long?

Я согласен с ответом @Ucello; это появится, когда есть несоответствие типа данных. Но также и при запуске неправильной версии проекта.

Раньше я разделял front-end и back-end проекты. Когда я запускал Грааль (внешняя часть), я не осознавал, что запускаю Мое приложение v3.1, но запустил внутреннюю часть Java Мое приложение v3.0. Итак, между версиями 3.1 и 3.0 было несоответствие типов данных и выбрасывалась эта ошибка.

Не уверен, что это поможет другим пользователям. Мне потребовалось время, чтобы понять 🙂

Источник

SQL state [99999]; error code [17026]; Numeric Overflow; nested exception is java.sql.SQLException:

  • We are getting below exception in java,

    SQL state [99999]; error code [17026]; Numeric Overflow; nested exception is java.sql.SQLException: Numeric Overflow
    java.sql.SQLException: Numeric Overflow
    at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4380)
    at oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:214)
    at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:896)
    at oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:434)
    at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:236)

  • This is just a guess, but it looks like you’re trying to fetch a value from a ResultSet which doesn’t fit into the chosen type in Java. Oracle can store numbers with up to 38 digits (disregarding the scale for now), which far exceeds even the range of Java’s long datatype. Inspect the values you’re trying to select from Oracle to see whether they don’t contain some really large values.

    You might try to fetch the number as double instead. If you need to keep the precision, another option might be to select the number as a text (using Oracle’s to_char function) and creating a BigInteger or BigDecimal from its textual representation.

    Источник

    SY agent reports error SQL State = 99999 , SQL Error Code = 17026

    Troubleshooting

    Problem

    The Summarization and Pruning agent connected to an Oracle database is encountering an error when attempting to aggregate data in a table.

    Symptom

    Isolate the problem table by reviewing the $CANDLEHOME/logs/ _sy_java_5*.log file that was updated during the latest SY agent run.

    Example of the error seen in the SY Java log:

    == 220408 t=work2 work2 — Examining table : (KSG_REGION_SUMMARY)

    == 220458 t=work2 EXCEPTION: Stmt: (KSG_REGION_SUMMARY.Sel1) Row: (1) Column: (Total_Floating_IP_Count,i) Value: (0)

    == 220459 t=work2 SQLException occured. SQL State = 99999 , SQL Error Code = 17026

    == 220460 t=work2 java.sql.SQLException: Numeric Overflow

    == 220461 t=work2 EXCEPTION: Failed to create aggregates for node: (abcd:hostname:SG)

    Cause

    The SQL State and SQL Error Code indicates invalid data was inserted into the table by an agent server.

    The important parts to the message above:
    Examining table : (KSG_REGION_SUMMARY) # Represents the table containing the invalid data
    Column: (Total_Floating_IP_Count,i) # Represents the column in the table that contains invalid data
    Failed to create aggregates for node: (nfv2:hostname:SG) # Represents the node that caused the invalid insert

    Diagnosing The Problem

    It is necessary to confirm what is considered valid data for the column by gathering the following information about the table.

    1. Gather the data definition for the table
    2. Confirm the data type for the column using a SQL SELECT statement that gathers distinct information regarding the data stored in the column

    An example of the SELECT statement constructed to isolate invalid data stored in the «Total_Floating_IP_Count». The data definition shows the data type for the column is Integer.

    select distinct NODE, min(Total_Floating_IP_Count) as MIN_VALUE, max(Total_Floating_IP_Count) as MAX_VALUE from ITMUSER.KSG_REGION_SUMMARY group by Node

    Resolving The Problem

    The SELECT statement indicated there was at least 1 row in the KSG_REGION_SUMMARY table where the value stored in the column Total_Floating_IP_Count was not an integer.

    The error regarding the Summarization and Pruning Agent was resolved by deleting all rows in the KSG_REGION_SUMMARY table that contained invalid values in the Total_Floating_IP_Count column:

    Источник

    SQL state [99999]; error code [17026]; Numeric Overflow; nested exception is java.sql.SQLException:

  • We are getting below exception in java,

    SQL state [99999]; error code [17026]; Numeric Overflow; nested exception is java.sql.SQLException: Numeric Overflow
    java.sql.SQLException: Numeric Overflow
    at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4380)
    at oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:214)
    at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:896)
    at oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:434)
    at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:236)

  • This is just a guess, but it looks like you’re trying to fetch a value from a ResultSet which doesn’t fit into the chosen type in Java. Oracle can store numbers with up to 38 digits (disregarding the scale for now), which far exceeds even the range of Java’s long datatype. Inspect the values you’re trying to select from Oracle to see whether they don’t contain some really large values.

    You might try to fetch the number as double instead. If you need to keep the precision, another option might be to select the number as a text (using Oracle’s to_char function) and creating a BigInteger or BigDecimal from its textual representation.

    Источник

    42501: НЕДОСТАТОЧНАЯ ОШИБКА ПРИВИЛЕГИИ при запросе в Postgresql

    Я пытаюсь запросить таблицу базы данных в postgresql, но каждый раз, когда я запускаю следующий запрос, он выдает ошибку INSUFFICIENT PRIVILEGE. Что могло быть причиной такой ошибки отказа в разрешении. Кроме того, я использую инструмент pgadmin в Windows для подключения к базе данных, которая находится в среде Linux. Ниже приведен запрос, который я выполняю

    При выполнении того же запроса я получаю следующую ошибку:

    4 ответа

    Пользователю, выполняющему запрос, потребуются разрешения для этой таблицы. Вы можете предоставить их этому пользователю с помощью оператора GRANT. Ниже приведен пример предоставления PUBLIC

    Это просто означает, что у вас нет разрешения на доступ к таблице приложения. Попросите вашего корневого администратора или администратора базы данных предоставить вам разрешение на доступ к таблице приложения. если вы являетесь пользователем root или имеете привилегии, вы можете использовать команду grant, чтобы предоставить собственное разрешение на использование всех операторов sql в таблице или базе данных
    Например:

    перед этим вы должны войти в систему как пользователь root или как пользователь, имеющий привилегии
    для получения дополнительных сведений об этой команде см. http://www.postgresql.org/docs/8.1/static/sql -grant.html

    Если это DB2, перейдите в командную консоль DB2, выберите соответствующую базу данных и выберите опцию Authorities, щелкнув правой кнопкой мыши базу данных, затем добавьте своего соответствующего пользователя DB2 и предоставьте требуемый доступ.

    Вам необходимо убедиться, что пользователь, с которым вы подключаетесь, также имеет доступ «USAGE» к схеме, к которой вы пытаетесь получить доступ с пользователем. Недавно я столкнулся с ошибкой, когда я восстановил дамп в базе данных, а затем у меня было несколько пользователей, которым я должен был предоставить доступ только для чтения. Я выполнил следующие шаги —

    После выполнения этих шагов, когда я попытался получить доступ к таблице, получил следующую ошибку:

    В моем случае мои пользователи уже были доступны, а схемы и база данных были недавно восстановлены. После того как я предоставил пользователю доступ к схеме «ИСПОЛЬЗОВАНИЕ», ошибка была устранена.

    Источник

    Ошибка SQL: ORA-00933: команда SQL не завершена должным образом

    Я пытаюсь обновить запись в oracle SQL developer с помощью соединений. Ниже приведен мой запрос —

    однако, когда я попытался выполнить его, я получил следующую ошибку —

    Я попытался удалить соединения

    но все еще с той же ошибкой может кто-нибудь сказать мне причину ошибки и решения

    5 ответов

    Oracle не разрешает объединение таблиц в инструкции UPDATE. Вам нужно переписать свой оператор с помощью поднабора, связанного с co-select

    что-то вроде этого:

    полное описание (допустимого) синтаксиса инструкции UPDATE см. В руководстве:

    точка с запятой ; в конце команды вызвал ту же ошибку на мне.

    надеюсь, что это помогает.

    не совсем случай фактического контекста этого вопроса, но это исключение может быть воспроизведено следующим запросом:

    одинарные кавычки в словах can’t и строку. В случае, если строка имеет только одну внутреннюю цитату, например, «он не хочет», oracle бросает более релевантное цитируемая строка не завершена должным образом ошибки, но в случае двух команда SQL не завершена должным образом бросается.

    сводка: проверьте запрос на double простые кавычки.

    ваш запрос должен выглядеть как

    вы можете проверить следующий вопрос Для справки

    его очень верно на oracle, а также sql «пользователи» — это зарезервированные слова, просто измените его , это послужит вам лучше всего, если вы хотите изменить его на это

    Источник

    Ошибка SQL: ORA-00933: команда SQL не завершена должным образом

    Я пытаюсь обновить запись в разработчике Oracle SQL с помощью объединений. Ниже мой запрос —

    Однако, когда я попытался его выполнить, я получил следующую ошибку:

    Я пытался удалить JOINS

    но все еще имея такую ​​же ошибку, кто-нибудь может сказать мне причину ошибки и решение

    Точка ; с запятой в конце команды вызвала у меня ту же ошибку.

    Надеюсь, это поможет.

    Oracle не позволяет объединять таблицы в операторе UPDATE. Вам нужно переписать свой оператор с помощью связанного подвыбора

    Что-то вроде этого:

    Полное описание (действительного) синтаксиса оператора UPDATE см. В руководстве:

    Ваш запрос должен выглядеть так

    Вы можете проверить приведенный ниже вопрос для получения помощи

    Не совсем соответствует фактическому контексту этого вопроса, но это исключение можно воспроизвести с помощью следующего запроса:

    Одиночные кавычки в словах can’t и don’t разрыв строки. В случае, если строка имеет только одну внутреннюю кавычку, например, «он не хочет», оракул выдает более релевантную строку в кавычках, не завершенную должным образом, ошибка, но в случае, если две команды SQL не завершены должным образом, выдается.

    Резюме: проверьте свой запрос на наличие двойных одинарных кавычек.

    Источник

    Problem

    The Summarization and Pruning agent connected to an Oracle database is encountering an error when attempting to aggregate data in a table.

    Symptom

    Isolate the problem table by reviewing the $CANDLEHOME/logs/<hostname>_sy_java_5*.log file that was updated during the latest SY agent run.

    Example of the error seen in the SY Java log:

    == 220408 t=work2 work2 — Examining table : (KSG_REGION_SUMMARY)

    == 220458 t=work2 EXCEPTION: Stmt: (KSG_REGION_SUMMARY.Sel1) Row: (1) Column: (Total_Floating_IP_Count,i) Value: (0)

    == 220459 t=work2 SQLException occured. SQL State = 99999 , SQL Error Code = 17026

    == 220460 t=work2 java.sql.SQLException: Numeric Overflow

    == 220461 t=work2 EXCEPTION: Failed to create aggregates for node: (abcd:hostname:SG)

    Cause

    The SQL State and SQL Error Code indicates invalid data was inserted into the table by an agent server.

    The important parts to the message above:
    Examining table : (KSG_REGION_SUMMARY)   # Represents the table containing the invalid data
    Column: (Total_Floating_IP_Count,i)      # Represents the column in the table that contains invalid data
    Failed to create aggregates for node: (nfv2:hostname:SG)  # Represents the node that caused the invalid insert

    Diagnosing The Problem

    It is necessary to confirm what is considered valid data for the column by gathering the following information about the table.

    1.     Gather the data definition for the table
    2.     Confirm the data type for the column using a SQL SELECT statement that gathers distinct information regarding the data stored in the column

    An example of the SELECT statement constructed to isolate invalid data stored in the «Total_Floating_IP_Count».  The data definition shows the data type for the column is Integer.

    select distinct NODE, min(Total_Floating_IP_Count) as MIN_VALUE, max(Total_Floating_IP_Count) as MAX_VALUE from ITMUSER.KSG_REGION_SUMMARY group by Node

    Resolving The Problem

    The SELECT statement indicated there was at least 1 row in the KSG_REGION_SUMMARY table where the value stored in the column Total_Floating_IP_Count was not an integer.

    The error regarding the Summarization and Pruning Agent was resolved by deleting all rows in the KSG_REGION_SUMMARY table that contained invalid values in the Total_Floating_IP_Count column:

    [{«Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Product»:{«code»:»SSTFXA»,»label»:»Tivoli Monitoring»},»Component»:»Summarization and Pruning Agent»,»Platform»:[{«code»:»PF025″,»label»:»Platform Independent»}],»Version»:»All Versions»,»Edition»:»»,»Line of Business»:{«code»:»LOB45″,»label»:»Automation»}}]

    Понравилась статья? Поделить с друзьями:
  • Sql error 17003
  • Sql error 4060
  • Sql error 17002 sqlstate 08006
  • Sql error 40000 42000 error while compiling statement failed nullpointerexception null
  • Sql error 16000