Есть ли Oracle, эквивалентная ВСТАВЛЕННОМУ ВЫВОДУ SQL Server.*?

Что я рекомендую: (Это работает для меня после многих дней с ошибками)

-Убедитесь, что вы скачали:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-Загрузите ADT

-Сделайте защитную копию вашего проекта.

- У вас должны быть ADT, рабочая область и проект, который мы будем импортировать на одном диске (например, C: /)

  1. Теперь удалите приложение Compat и ваш проект.

  2. В eclipse: Файл> Импорт> Существующий проект Android> Далее> Обзор (папка, в которой находится ADT) / sdk / extras / android / v7 / appcompat> Импорт> Готово

  3. Теперь в обозревателе пакетов eclipse: android-support-v7-appcompat / libs / Make на двух JARS: Щелкните правой кнопкой мыши> Путь сборки> Добавить в путь сборки

  4. Щелкните правой кнопкой мыши libs / folder> Buil Path> Configure Build Path и отметьте эти два JARS> OK

  5. На верхней панели затмений> Project> Clean

  6. Импорт проекта> Файл> Импорт> Просмотр проекта> Готово

  7. Теперь щелкните правой кнопкой мыши файл проекта и android-support-v7-appcompat> Свойства> Android> и выберите последний отображаемый API> OK

  8. Щелкните правой кнопкой мыши файл проекта> Свойства> Android> Добавить> android-support-v7-appcompat

  9. На верхней панели затмения> Проект> Очистить

16
задан Jason Baker 2 July 2009 в 14:49
поделиться

2 ответа

Предложение RETURNING поддерживает синтаксис BULK COLLECT INTO . Рассмотрим (10g):

SQL> CREATE TABLE t (ID NUMBER);

Table created
SQL> INSERT INTO t (SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 5);

5 rows inserted
SQL> DECLARE
  2     TYPE tab_rowid IS TABLE OF ROWID;
  3     l_r tab_rowid;
  4  BEGIN
  5     UPDATE t SET ID = ID * 2
  6      RETURNING ROWID BULK COLLECT INTO l_r;
  7     FOR i IN 1 .. l_r.count LOOP
  8        dbms_output.put_line(l_r(i));
  9     END LOOP;
 10  END;
 11  /

AADcriAALAAAAdgAAA
AADcriAALAAAAdgAAB
AADcriAALAAAAdgAAC
AADcriAALAAAAdgAAD
AADcriAALAAAAdgAAE

Он работает с многострочным UPDATE и DELETE с моей версией (10.2.0.3.0), но НЕ с ] INSERT :

SQL> DECLARE
  2     TYPE tab_rowid IS TABLE OF ROWID;
  3     l_r tab_rowid;
  4  BEGIN
  5     INSERT INTO t (SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 5)
  6      RETURNING ROWID BULK COLLECT INTO l_r;
  7     FOR i IN 1 .. l_r.count LOOP
  8        dbms_output.put_line(l_r(i));
  9     END LOOP;
 10  END;
 11  /

ORA-06550: line 7, column 5:
PL/SQL: ORA-00933: SQL command not properly ended

Может быть, у вас более новая версия (11g?) И BULK COLLECT INTO поддерживается для многострочных INSERT ?

3
ответ дан 30 November 2019 в 23:21
поделиться

Может, я не понимаю вопроса, но разве это не поможет? (вы должны знать, что вы хотите вернуть)

INSERT INTO some_table (...)
VALUES (...)
RETURNING some_column_a, some_column_b, some_column_c,  ...  INTO :out_a, :out_b, :out_c, ...

@Vincent, возвращающий массовую сборку для многострочной вставки, работает только в сочетании с forall (другими словами, если вы вставляете из коллекции, вы можете получать «результаты» в другую)

5
ответ дан 30 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: