Praca z bazą danych Oracle 9i z aplikacji ASP.NET 2.0 (VB) za pomocą OLEDB. Czy istnieje sposób, aby instrukcja insert zwróciła wartość? Mam sekwencję ustawioną do wpisów liczbowych, gdy przechodzą one do bazy danych, ale potrzebuję tej wartości, aby powrócić po wstawieniu, więc mogę wykonać pewną manipulację do zestawu, który właśnie wprowadziłem w VB z tyłu kodu.Zwróć wartość z instrukcji wstawiania
Odpowiedz
Niektóre możliwości:
1) używa klauzuli powracający:
INSERT INTO emp (empno, ename) VALUES (emp_seq.NEXTVAL, 'ANDREWS')
RETURNING empno INTO :variable;
2) zastosowanie sekwencji CURRVAL:
INSERT INTO emp (empno, ename) VALUES (emp_seq.NEXTVAL, 'ANDREWS');
SELECT emp_seq.CURRVAL INTO :variable FROM DUAL;
CURRVAL zwraca ostatnią wartość sekwencji wygenerowanej przez twoja sesja.
Jeśli ta wartość jest kluczem tworzonym przez bazę danych, wpadłeś na dobry przykład, dlaczego powinieneś używać identyfikatorów UUID jako klucza tabeli i generujesz je w kodzie.
Ta metoda zapewnia szybszą wydajność w konfiguracji.
Oracle wydaje się mieć keywod zwany "return", który może zwrócić daną kolumnę wstawionego wiersza, jednak może to wymagać ręcznego ustawienia pola "autoinkrementacji" poprzez wywołanie kolejnej wartości w sekwencji.
Sprawdź to dyskusja o tym:
http://forums.oracle.com/forums/thread.jspa?threadID=354998
Jednak zawsze można wybrać bieżący sekwencji numer w drugim zapytaniu, coś jak MySQLs last_insert_id()
najpierw użyć SELECT oświadczenie, aby uzyskać następną sekwencję. W tym celu możesz użyć the Oracle dual table.
SELECT my_seq.nextval FROM dual
Użyj sekwencję że pobrane w kolejnych INSERT wypowiedzi.
INSERT ...
INSERT ...
- 1. Zwróć wartość logiczną na SQL Wybierz instrukcję
- 2. Zwróć wartość ORAZ wyrzuć wyjątek?
- 3. Liczba rekordów w instrukcji wstawiania (Oracle)
- 4. RxJava Zwróć wartość subskrybowaną w funkcji
- 5. Zwróć tylko wartość tablicy w projekcji mongo
- 6. Zwróć wartość za pomocą funkcji jQuery each()
- 7. Zwróć wartość domyślną, jeśli nie znaleziono wierszy.
- 8. Zwróć wartość ciągu na podstawie warunku XPATH
- 9. Błąd podczas wstawiania daty - Nieprawidłowa wartość daty:
- 10. Czy używam przedrostka N w instrukcji "wstawiania do" kodu Unicode?
- 11. Wstawianie więcej niż jednego rekordu za pomocą pojedynczej instrukcji wstawiania
- 12. odzyskać wartość atrybutu stylu wstawiania html z jsoup
- 13. Zwróć określone pola z .populate() z Mongoose
- 14. Separator instrukcji JS z przecinkami
- 15. Python - zwróć największą z N list
- 16. Generowanie instrukcji SQL z pythonem
- 17. Zwróć obiekt z tablicy o najwyższej wartości
- 18. Zwróć pojedynczy klucz z hasza?
- 19. C# Zwróć kopię z ConcurrentBag
- 20. Zwróć wiele zmiennych z funkcji JavaScript?
- 21. groovy: znajdź klucz na mapie i zwróć jego wartość
- 22. Funkcja zwraca wartość bez instrukcji return
- 23. Android - Użyj WebView do oceny łańcucha javascript i zwróć wartość
- 24. Zwróć wartość, jeśli nie zostaną znalezione żadne wiersze. SQL
- 25. Wstawianie instrukcji JPA
- 26. Używanie pg_dump do pobierania instrukcji wstawiania z jednej tabeli w bazie danych
- 27. Jak radzić sobie z wartościami null w tym instrukcji wstawiania PHP/mysql
- 28. Zmienność szybkości wstawiania SQL
- 29. Mysql: Jak przekonwertować wartość dodatnią na ujemną podczas wstawiania
- 30. Błąd PostgreS: wartość pusta w kolumnie "id" - podczas operacji wstawiania
Witaj Tony, czy to dotyczy również serwera SQL. Potrzebuję tego samego dla SQL Server 2008 R2. –
@Ujaj, przepraszam, nie wiem, SQL Server, ale zobacz http://bytes.com/topic/sql-server/answers/83675-return-primary-key-insert-statement –
Dzięki za pomoc. Ale nie szukam procedury przechowywanej. –