Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Strona Konwersja okna dialogowego Ustawienia projektu zawiera ustawienia umożliwiające dostosowanie sposobu konwertowania składni oracle przez program SSMA na składnię programu SQL Server.
Okienko Konwersja jest dostępne w oknach dialogowych Ustawienia projektu i Domyślne ustawienia projektu :
Aby określić ustawienia dla wszystkich projektów SSMA, w menu Narzędzia kliknij pozycję Domyślne ustawienia projektu, wybierz typ projektu migracji, dla którego ustawienia są wymagane do wyświetlenia lub zmiany z listy rozwijanej Wersja docelowa migracji , a następnie kliknij przycisk Ogólne w dolnej części okienka po lewej stronie, a następnie kliknij przycisk Konwersja.
Aby określić ustawienia bieżącego projektu, w menu Narzędzia kliknij pozycję Ustawienia projektu, a następnie kliknij pozycję Ogólne w dolnej części okienka po lewej stronie, a następnie kliknij pozycję Konwersja.
Wbudowane funkcje i dostarczone pakiety
| Termin | Definicja |
|---|---|
| Konwertowanie funkcji COUNT na COUNT_BIG | Jeśli funkcje COUNT mogą zwracać wartości większe niż 2147 483 647, czyli 231–1, należy przekonwertować funkcje na COUNT_BIG.W przypadku wybrania opcji Tak funkcja SSMA przekonwertuje wszystkie zastosowania wartości COUNT na COUNT_BIG.Jeśli wybierzesz pozycję Nie, funkcje pozostaną jako COUNT. Program SQL Server zwróci błąd, jeśli funkcja zwróci wartość większą niż 231–1.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: tryb domyślny/pełny: Tak tryb optymistyczny: nie |
| Konwertowanie wywołań funkcji SUBSTR na wywołania funkcji SUBSTRING | Funkcja SSMA może konwertować wywołania funkcji Oracle SUBSTR na wywołania funkcji programu SQL Server substring w zależności od liczby parametrów. Jeśli SSMA nie może przekonwertować wywołania funkcji SUBSTR lub liczba parametrów nie jest obsługiwana, SSMA przekonwertuje wywołanie SUBSTR na niestandardowe wywołanie funkcji SSMA.W przypadku wybrania opcji Tak funkcja SSMA przekonwertuje SUBSTR wywołania funkcji, które używają trzech parametrów do programu SQL Server substring. Inne SUBSTR funkcje zostaną przekonwertowane na wywołanie niestandardowej funkcji SSMA.Jeśli wybierzesz Nie, wywołanie funkcji SUBSTR zostanie przekonwertowane na niestandardowe wywołanie funkcji SSMA.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: Tak Pełny tryb: Nie |
| Konwertowanie wywołań funkcji TO_CHAR(data, format) | Program SSMA może przekonwertować oracle TO_CHAR(date, format) na procedury ze ssma_oracle schematu.W przypadku wybrania opcji Korzystanie z funkcji TO_CHAR_DATE, SSMA konwertuje TO_CHAR(date, format) do funkcji TO_CHAR_DATE przy użyciu języka angielskiego na potrzeby konwersji.W przypadku wybrania opcji Using TO_CHAR_DATE_LS function (NLS care), SSMA konwertuje TO_CHAR(date, format) na funkcję TO_CHAR_DATE_LS korzystając z języka sesji dla konwersji.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: Korzystanie z funkcji TO_CHAR_DATE tryb pełny : Korzystanie z funkcji TO_CHAR_DATE_LS (opieka NLS) |
| Generowanie błędu dla DBMS_SQL. PARSE | W przypadku wybrania pozycji Błąd funkcja SSMA generuje błąd podczas konwersji DBMS_SQL.PARSE.W przypadku wybrania opcji Ostrzeżenie program SSMA generuje ostrzeżenie podczas konwersji DBMS_SQL.PARSE.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: błąd |
| Używanie funkcji ISNULL w wywołaniach funkcji CONCAT |
ISNULL polecenie jest używane w wywołaniach funkcji CONCAT w celu emulowania zachowania Oracle. Dla tego ustawienia są dostępne następujące opcje:TAK NIE Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: nie pełny tryb : Tak |
| Używanie funkcji ISNULL w wywołaniach funkcji REPLACE |
ISNULL polecenie jest używane w wywołaniach funkcji REPLACE w celu emulowania zachowania Oracle. Dla tego ustawienia są dostępne następujące opcje:TAK NIE Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: nie pełny tryb : Tak |
| Użyj natywnej funkcji convert, jeśli jest to możliwe | Jeśli wybierzesz opcję Tak, SSMA przekształca TO_CHAR(date, format) na natywną funkcję konwersji, jeśli jest to możliwe.Jeśli wybierzesz Nie, SSMA konwertuje TO_CHAR(date, format) na TO_CHAR_DATE lub TO_CHAR_DATE_LS (określa to opcja Convert TO_CHAR(date, format)).Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: Tak Pełny tryb: Nie |
Komunikaty konwersji
| Termin | Definicja |
|---|---|
| Generowanie komunikatów o problemach | Określa, czy program SSMA generuje komunikaty informacyjne podczas konwersji, wyświetla je w okienku Dane wyjściowe i dodaje je do przekonwertowanego kodu. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: nie Pełny tryb: Nie |
Różne opcje
| Termin | Definicja |
|---|---|
| Konwertowanie wyrażeń ROWNUM na liczby całkowite | Gdy funkcja SSMA konwertuje ROWNUM wyrażenia, konwertuje wyrażenie na klauzulę TOP , a następnie wyrażenie. W poniższym przykładzie pokazano ROWNUM w instrukcji Oracle DELETE :DELETE FROM Table1WHERE ROWNUM < expression and Field1 >= 2Poniższy przykład przedstawia wynikowy kod Transact-SQL: DELETE TOP (expression-1)FROM Table1WHERE Field1>=2Wymaganie TOP polega na tym, aby wyrażenie klauzuli TOP rezultowało w liczbę całkowitą. Jeśli liczba całkowita jest ujemna, komenda spowoduje błąd.Jeśli wybierzesz Tak, funkcja SSMA rzutuje wyrażenie jako liczbę całkowitą. Jeśli wybierzesz pozycję Nie, funkcja SSMA oznaczy wszystkie wyrażenia inne niż liczby całkowite jako błąd w przekonwertowanym kodzie. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: tryb domyślny/pełny: nie tryb optymistyczny: Tak |
| Domyślne mapowanie schematu | To ustawienie określa sposób mapowania schematów Oracle na schematy programu SQL Server. W tym ustawieniu są dostępne dwie opcje: Schemat do bazy danych: W tym trybie schemat sch1 Oracle zostanie domyślnie zamapowany na dbo schemat programu SQL Server w bazie danych sch1programu SQL Server.Schemat do schematu: W tym trybie schemat sch1 Oracle zostanie domyślnie zmapowany na schemat SQL Server sch1 w domyślnej bazie danych SQL Server wskazanej w oknie dialogowym połączenia.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: schemat do bazy danych |
| Emuluj zachowanie wartości NULL Oracle w klauzulach ORDER BY |
NULL wartości są uporządkowane inaczej w programach SQL Server i Oracle:W programie SQL Server wartości NULL są najniższymi wartościami na liście uporządkowanej. Na liście NULL rosnącej wartości będą wyświetlane jako pierwsze.W programie Oracle NULL wartości są najwyższymi wartościami na uporządkowanej liście. Domyślnie wartości NULL pojawiają się jako ostatnie w porządku rosnącym.Oracle ma NULLS FIRST i NULLS LAST klauzule, które umożliwiają zmianę sposobu, w jaki bazy danych Oracle sortują wartości NULL.Funkcja SSMA może emulować zachowanie Oracle poprzez sprawdzanie wartości ORDER BY. Następnie najpierw porządkuje wartości NULL w określonej kolejności, a następnie porządkuje według innych wartości.W przypadku wybrania opcji Tak funkcja SSMA przekonwertuje instrukcję Oracle w sposób emulujący zachowanie oracle ORDER BY .Jeśli wybierzesz pozycję Nie, funkcja SSMA zignoruje reguły Oracle i wygeneruje komunikat o błędzie podczas napotkania NULLS FIRST klauzul i NULLS LAST .Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: nie pełny tryb : Tak |
| Emuluj wyjątki dotyczące liczby wierszy w SELECT |
SELECT Jeśli instrukcja z klauzulą INTO nie zwraca żadnych wierszy, oracle zgłasza NO_DATA_FOUND wyjątek. Jeśli instrukcja zwraca dwa lub więcej wierszy, jest zgłaszany wyjątek TOO_MANY_ROWS. Przekonwertowana instrukcja w programie SQL Server nie zgłasza żadnego wyjątku, jeśli liczba wierszy różni się od jednej.W przypadku wybrania opcji Tak funkcja SSMA dodaje wywołanie do specjalnej db_error_exact_one_row_check procedury po każdej SELECT instrukcji. Ta procedura emuluje wyjątki NO_DATA_FOUND i TOO_MANY_ROWS. Jest to ustawienie domyślne i umożliwia odtwarzanie zachowania Oracle jak najbliżej. Zawsze należy wybrać Tak, jeśli kod źródłowy ma procedury obsługi wyjątków, które przetwarzają te błędy. Należy pamiętać, że jeśli SELECT instrukcja występuje wewnątrz funkcji zdefiniowanej przez użytkownika, ten moduł zostanie przekonwertowany na procedurę składowaną, ponieważ wykonywanie procedur składowanych i wywoływanie wyjątków nie jest zgodne z kontekstem funkcji programu SQL Server.Jeśli wybierzesz pozycję Nie, nie zostaną wygenerowane żadne wyjątki. Może to być przydatne, gdy funkcja SSMA konwertuje funkcję zdefiniowaną przez użytkownika i chcesz, aby pozostała funkcją w programie SQL Server Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Włącz funkcję Fix Advisor | Po włączeniu program SSMA spróbuje poznać modyfikacje wprowadzone w docelowym kodzie T-SQL i zasugerować potencjalne poprawki kodu w innych miejscach, w których można zastosować podobny wzorzec. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Generowanie aliasów kolumn wyrażeń stałych | Jeśli na liście brakuje aliasu wyrażenia SELECT , funkcja SSMA może wygenerować alias stały (na przykład expr1, expr2itp.) lub użyć samego wyrażenia jako aliasu. Ponieważ wyrażenia mogą być dość długie, a długość nazwy kolumny jest ograniczona, bezpieczniej jest używać stałej nazwy bazowej dla takich aliasów. Mimo że jest to bezpieczniejsza opcja, czasami nie jest to możliwe, ponieważ mogą istnieć zależności zewnętrzne od wynikowego zestawu danych. W takich przypadkach możesz nazwać kolumny według ich wyrażeń wartości, podobnie jak zachowanie firmy Oracle.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: Tryb domyślny/optymistyczny: Tak Pełny tryb: Nie |
| Pomijanie właściwości rozszerzonych | Po włączeniu program SSMA nie doda właściwości rozszerzonych do obiektów tworzonych w docelowej bazie danych. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: nie |
| Tłumaczenie kodów błędów | Po włączeniu numer błędu po stronie docelowej programu SQL Server zostanie przetłumaczony na kod błędu Oracle, jeśli zostanie znalezione mapowanie. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: tryb domyślny/pełny: Tak tryb optymistyczny: nie |
| Używanie pełnej specyfikacji typu dla odwołań do typów | Po włączeniu funkcja SSMA będzie przestrzegać pełnej specyfikacji typu (w tym skalowania i precyzji) dla parametrów rutynowych i zwracanych wartości. Oracle nie zezwala na argumenty typu danych dla parametrów rutynowych, ale istnieją przypadki, w których mogą być niejawnie wywnioskowane, na przykład kiedy atrybuty %TYPE i %ROWTYPE są używane. W takich przypadkach funkcja SSMA może używać pełnej specyfikacji typu (w tym dokładności i skali) podczas konwertowania jej na program SQL Server.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: Tak Pełny tryb: Nie |
| Użyj ISNULL w łączeniu ciągów | Bazy danych Oracle i SQL Server zwracają różne wyniki, gdy łączenie ciągów zawiera NULL wartości. Oracle traktuje wartość NULL jak pusty zestaw znaków. SQL Server zwraca NULL.Jeśli wybierzesz pozycję Tak, funkcja SSMA zastąpi znak łączenia Oracle (||) znakiem łączenia programu SQL Server (+). Funkcja SSMA sprawdza również wyrażenia po obu stronach konkatenacji w poszukiwaniu wartości NULL.Jeśli wybierzesz Brak, program SSMA zastępuje znaki łączenia, ale nie sprawdza wartości NULL.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
Konwersja obiektów
| Termin | Definicja |
|---|---|
| Konwertowanie kluczy obcych za pomocą akcji odwołania SET NULL w kolumnie, która nie ma wartości NULL | Oracle umożliwia tworzenie ograniczeń klucza obcego, w przypadku których SET NULL nie można wykonać akcji, ponieważ wartości NULL nie są dozwolone w kolumnie, do której się odnosi. Program SQL Server nie zezwala na taką konfigurację klucza obcego.Jeśli wybierzesz pozycję Tak, funkcja SSMA wygeneruje akcje odwołujące się do programu Oracle, ale przed załadowaniem ograniczenia do programu SQL Server należy wprowadzić zmiany ręczne. Możesz na przykład wybrać NO ACTION zamiast SET NULL.Jeśli wybierzesz pozycję Nie, ograniczenie zostanie oznaczone jako błąd. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: nie |
| Konwertowanie podtypów | Program SSMA może konwertować podtypy PL/SQL na dwa sposoby: Jeśli wybierzesz opcję Tak, program SSMA utworzy typ zdefiniowany przez użytkownika programu SQL Server z podtypu i użyje go dla każdej zmiennej tego podtypu. Jeśli wybierzesz pozycję Nie, funkcja SSMA zastąpi wszystkie deklaracje źródłowego podtypu typem bazowym i przekonwertuje wynik w zwykły sposób. W takim przypadku w programie SQL Server nie są tworzone żadne dodatkowe typy Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: nie |
| Konwertowanie synonimów | Synonimy dla następujących obiektów Oracle można migrować do programu SQL Server: Tabele i tabele obiektów Widoki i widoki obiektów Procedury składowane i funkcje Zmaterializowane widoki Synonimy dla następujących Obiekty Oracle można zastąpić bezpośrednimi odwołaniami do obiektów: Sekwencje Pakiety Obiekty schematu klasy Java Typy obiektów zdefiniowanych przez użytkownika Nie można migrować pozostałych synonimów. Program SSMA wygeneruje komunikaty o błędach dla synonimu oraz wszystkich odwołań korzystających z synonimu. Jeśli wybierzesz pozycję Tak, program SSMA utworzy synonimy programu SQL Server i odwołania do obiektów bezpośrednich zgodnie z poprzednimi listami. Jeśli wybierzesz pozycję Nie, funkcja SSMA utworzy odwołania do obiektów bezpośrednich dla wszystkich synonimów wymienionych tutaj. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwersja modułów lokalnych | Definiuje konwersję typu zagnieżdżonego podprogramu Oracle, zadeklarowanego w samodzielnej procedurze składowanej lub funkcji. W przypadku wyboru Wbudowane, zagnieżdżone wywołania podprogramu zostaną zastąpione ich treścią. W przypadku wybrania procedur składowanych, zagnieżdżony podprogram zostanie przekonwertowany na procedurę składowaną dla serwera SQL, a jego wywołania zostaną zastąpione wywołaniami tej nowej procedury. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: w linii |
Konwersja rekordów
| Termin | Definicja |
|---|---|
| Konwertowanie rekordu jako listy zmiennych oddzielnych | Program SSMA może konwertować rekordy Oracle na oddzielne zmienne i zmienne XML z określoną strukturą. W przypadku wybrania opcji Takprogram SSMA konwertuje rekord na listę oddzielnych zmiennych, jeśli jest to możliwe. W przypadku wybrania opcji Brakprogram SSMA konwertuje rekord na zmienne XML z określoną strukturą. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Użyj SELECT...FOR XML przy konwersji SELECT...INTO dla zmiennej rekordowej | Określa, czy podczas wybierania w zmiennej rekordu ma być generowany zestaw wyników XML. W przypadku wybrania Takinstrukcja SELECT zwraca kod XML. W przypadku wybrania opcji Brakinstrukcja SELECT zwraca zestaw wyników. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: nie |
Konwersja klauzuli RETURNING
| Termin | Definicja |
|---|---|
| Konwertowanie klauzuli RETURNING w instrukcji DELETE na OUTPUT | Oracle udostępnia klauzulę RETURNING jako sposób natychmiastowego uzyskania usuniętych wartości. Program SQL Server udostępnia te funkcje z klauzulą OUTPUT .W przypadku wybrania opcji Tak, SSMA będzie konwertować klauzule RETURNING w instrukcjach DELETE na klauzule OUTPUT. Ponieważ wyzwalacze w tabeli mogą zmieniać wartości, zwracana wartość może być inna w programie SQL Server niż w programie Oracle.Jeśli wybierzesz pozycję Nie, SSMA wygeneruje instrukcję SELECT przed instrukcjami DELETE, aby pobrać zwrócone wartości.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwertowanie klauzuli RETURNING w instrukcji INSERT na OUTPUT | Oracle udostępnia klauzulę RETURNING jako sposób natychmiastowego uzyskania wstawionych wartości. Program SQL Server udostępnia te funkcje z klauzulą OUTPUT .W przypadku wybrania opcji Tak funkcja SSMA przekonwertuje klauzulę RETURNING w instrukcji INSERT na OUTPUT. Ponieważ wyzwalacze w tabeli mogą zmieniać wartości, zwracana wartość może być inna w programie SQL Server niż w programie Oracle.Jeśli wybierzesz pozycję Nie, funkcja SSMA emuluje funkcję Oracle, wstawiając, a następnie wybierając wartości z tabeli referencyjnej. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwertowanie klauzuli RETURNING w instrukcji UPDATE na OUTPUT | Oracle udostępnia klauzulę RETURNING jako sposób natychmiastowego uzyskiwania zaktualizowanych wartości. Program SQL Server udostępnia te funkcje z klauzulą OUTPUT .W przypadku wybrania opcji Tak, SSMA będzie konwertować klauzule RETURNING w instrukcjach UPDATE na klauzule OUTPUT. Ponieważ wyzwalacze w tabeli mogą zmieniać wartości, zwracana wartość może być inna w programie SQL Server niż w programie Oracle.Jeśli wybierzesz pozycję Nie, funkcja SSMA wygeneruje instrukcje SELECT po UPDATE instrukcjach w celu pobrania zwracanych wartości.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
Generowanie identyfikatorów ROWID
| Termin | Definicja |
|---|---|
| Generowanie kolumny ROWID | Gdy program SSMA tworzy tabele w programie SQL Server, może utworzyć kolumnę ROWID. Gdy dane są migrowane, każdy wiersz uzyskuje nową UNIQUEIDENTIFIER wartość wygenerowaną przez newid() funkcję.Jeśli wybierzesz pozycję Tak, kolumna ROWID zostanie utworzona we wszystkich tabelach, a program SQL Server generuje identyfikatory GUID podczas wstawiania wartości. Zawsze wybieraj opcję Tak , jeśli planujesz użyć testera SSMA.Jeśli wybierzesz pozycję Nie, kolumny ROWID nie zostaną dodane do tabel. Dodaj kolumnę ROWID dla tabel zawierających wyzwalacze ROWID dla tabel zawierających wyzwalacze.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: Dodaj kolumnę ROWID dla tabel z wyzwalaczami pełny tryb : Tak |
| Generowanie unikatowego indeksu w kolumnie ROWID | Określa, czy funkcja SSMA generuje unikatową kolumnę indeksu w wygenerowanej ROWID kolumnie, czy nie. Jeśli opcja jest ustawiona na "TAK", unikatowy indeks jest generowany i jeśli jest ustawiony na "NIE", unikatowy indeks nie jest generowany w kolumnie ROWID .Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
Sekwencja i konwersja tożsamości
| Termin | Definicja |
|---|---|
| Przekształć tożsamość jako | Oracle udostępnia wiele opcji konfiguracji dla kolumn tożsamości. Niektóre z tych opcji nie są obsługiwane przez funkcję tożsamości w programie SQL Server. Metoda zachowania tych opcji polega na konwersji tożsamości w sekwencję. W przypadku wybrania pozycji Sekwencja kolumny tożsamości Oracle nie będą już konwertowane na kolumny tożsamości SQL. Zamiast tego zostanie utworzona sekwencja i zostanie użyta do wygenerowania wartości domyślnych dla kolumny. W przypadku wybrania pozycji Tożsamość kolumny tożsamości Oracle zostaną przekonwertowane na kolumny tożsamości SQL. Nieobsługiwane opcje nie zostaną przekonwertowane. W przypadku wybrania opcji Najlepsze dopasowanie funkcja SSMA określi najlepszą metodę konwersji (tożsamość lub sekwencja) w zależności od konfiguracji kolumny tożsamości Oracle. |
| Konwersja generatora sekwencji | W programie Oracle można użyć sekwencji do generowania unikatowych identyfikatorów. Program SSMA może konwertować sekwencje na następujące. Korzystanie z generatora sekwencji programu SQL Server. Korzystanie z generatora sekwencji SSMA. Używanie identyfikatora kolumny. Domyślną opcją jest użycie generatora sekwencji programu SQL Server. Jednak program SQL Server nie obsługuje uzyskiwania bieżącej wartości sekwencji (takiej jak metoda sekwencji CURRVAL Oracle). Odwiedź blog zespołu SSMA, aby znaleźć wskazówki dotyczące migrowania metody sekwencji CURRVAL Oracle.Usługa SSMA udostępnia również opcję konwersji sekwencji Oracle na emulator sekwencji SSMA. Jest to opcja domyślna podczas konwersji na program SQL Server przed 2012 r. Na koniec możesz również przekonwertować sekwencję przypisaną do kolumny w tabeli na wartości tożsamości programu SQL Server. Należy określić mapowanie między sekwencjami a kolumną tożsamości w tabeli Oracle na karcie Tabela. |
| Konwertowanie wyzwalaczy zewnętrznych CURRVAL | Widoczne tylko wtedy, gdy generator sekwencji konwersji jest ustawiony na Using column identity. Ponieważ sekwencje Oracle są obiektami oddzielonymi od tabel, wiele tabel używających sekwencji używa wyzwalacza do generowania i wstawiania nowej wartości sekwencji. SSMA komentuje te instrukcje lub oznacza je jako błędy, gdy zakomentowanie spowodowałoby ich wystąpienie. Jeśli wybierzesz pozycję Tak, funkcja SSMA oznaczy wszystkie odwołania do wyzwalaczy zewnętrznych w przekonwertowanej sekwencji CURRVAL z ostrzeżeniem.Jeśli wybierzesz pozycję Nie, funkcja SSMA oznaczy wszystkie odwołania do wyzwalaczy zewnętrznych w przekonwertowanej sekwencji CURRVAL z błędem. |
Konwersja oświadczeń
| Termin | Definicja |
|---|---|
| Konwersja instrukcji MERGE | W przypadku wybrania opcji „Użyj instrukcji INSERT, UPDATE, DELETE”, SSMA konwertuje instrukcję na instrukcje MERGE, INSERT, UPDATE, DELETE.W przypadku wybrania opcji Używanie instrukcji MERGE funkcja SSMA konwertuje MERGE instrukcję na MERGE w SQL Server.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: przy użyciu instrukcji MERGE |
| Konwertowanie wywołań na podprogramy używające argumentów domyślnych | Funkcje programu SQL Server nie obsługują pomijania parametrów w wywołaniu funkcji. Ponadto funkcje i procedury programu SQL Server nie obsługują wyrażeń jako domyślnych wartości parametrów. Jeśli wybierzesz pozycję Tak i wywołanie funkcji pomija parametry, SSMA wstawi słowo kluczowe domyślne do wywołania funkcji w odpowiedniej pozycji. Następnie będzie oznaczać połączenie ostrzeżeniem. Jeśli wybierzesz pozycję Nie, funkcja SSMA oznaczy wywołania funkcji jako błędy. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwertowanie instrukcji FORALL na instrukcję WHILE | Definiuje sposób, w jaki SSMA traktuje pętle na elementach kolekcji PL/SQL. W przypadku wybrania pozycji Tak funkcja SSMA tworzy pętlę WHILE , w której elementy kolekcji są pobierane pojedynczo.Jeśli wybierzesz pozycję Nie, funkcja SSMA generuje zestaw wyników z kolekcji za pomocą metody nodes() i używa go jako pojedynczej tabeli. Jest to bardziej wydajne, ale sprawia, że kod wyjściowy jest mniej czytelny.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny tryb: nie pełny tryb : Tak |
| Konwertowanie wywołań funkcji na wywołania procedury | Niektóre funkcje Oracle są definiowane jako autonomiczne transakcje lub zawierają instrukcje, które nie będą prawidłowe w programie SQL Server. W takich przypadkach SSMA tworzy procedurę i funkcję, która jest nakładką dla procedury. Przekonwertowana funkcja wywołuje procedurę implementowania. SSMA może konwertować wywołania funkcji otoki na wywołania procedury. Spowoduje to utworzenie bardziej czytelnego kodu i zwiększenie wydajności. Jednak kontekst nie zawsze go zezwala; na przykład nie można zastąpić wywołania funkcji na SELECT liście wywołaniem procedury. SSMA ma kilka opcji, które obejmują typowe przypadki:W przypadku wybrania opcji Zawszeprogram SSMA próbuje przekonwertować wywołania funkcji opakowującej na wywołania procedur. Jeśli bieżący kontekst nie zezwala na tę konwersję, zostanie wygenerowany komunikat o błędzie. W ten sposób żadne wywołania funkcji nie są pozostawione w wygenerowanym kodzie. Jeśli wybierzesz Jeśli to możliwe, SSMA używa wywołań procedur tylko wtedy, gdy funkcja ma parametry wyjściowe. Gdy przeniesienie nie jest możliwe, atrybut wyjściowy parametru zostanie usunięty. We wszystkich innych przypadkach SSMA pozostawia wywołania funkcji. Jeśli wybierzesz pozycję Nigdy, funkcja SSMA pozostawi wszystkie wywołania funkcji jako wywołania funkcji. Czasami ten wybór może być niedopuszczalny ze względu na wydajność. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Gdy to możliwe |
| Konwertowanie instrukcji LOCK TABLE | Funkcja SSMA może konwertować wiele instrukcji LOCK TABLE na wskazówki tabelowe. Program SSMA nie może przekonwertować żadnych instrukcji LOCK TABLE, które zawierają klauzule PARTITION, SUBPARTITION, @dblink i NOWAIT, i oznaczy takie instrukcje za pomocą komunikatów o błędach konwersji.W przypadku wybrania opcji Tak funkcja SSMA przekonwertuje obsługiwane LOCK TABLE instrukcje na wskazówki dotyczące tabeli.Jeśli wybierzesz Nie, SSMA będzie oznaczać wszystkie LOCK TABLE instrukcje błędami konwersji.W poniższej tabeli pokazano, jak program SSMA konwertuje tryby blokady Oracle: Tryb blokady Oracle ROW SHAREROW EXCLUSIVESHARE UPDATE = ROW SHARESHARESHAREEXCLUSIVEWskazówka dotycząca tabeli programu SQL Server ROWLOCK, HOLDLOCKROWLOCK, XLOCK, HOLDLOCKROWLOCK, HOLDLOCKTABLOCK, HOLDLOCKTABLOCK, XLOCK, HOLDLOCKTABLOCKX, HOLDLOCKPo wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwertowanie instrukcji OPEN-FOR dla parametrów REF CURSOR OUT | W programie Oracle instrukcja OPEN .. FOR może służyć do zwracania zestawu wyników do parametru podprogramu OUT typu REF CURSOR. W programie SQL Server procedury składowane bezpośrednio zwracają wyniki instrukcji SELECT .Funkcja SSMA może konwertować wiele OPEN .. FOR instrukcji na SELECT instrukcje.W przypadku wybrania opcji Tak funkcja SSMA konwertuje OPEN .. FOR instrukcję na instrukcję SELECT , która zwraca zestaw wyników do klienta.Jeśli wybierzesz pozycję Nie, funkcja SSMA wygeneruje komunikat o błędzie w przekonwertowanym kodzie i w okienku Dane wyjściowe. Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |
| Konwersja instrukcji przetwarzania transakcji | Program SSMA może konwertować instrukcje przetwarzania transakcji Oracle: W przypadku wybrania opcji Tak funkcja SSMA konwertuje instrukcje przetwarzania transakcji Oracle na instrukcje programu SQL Server. W przypadku wybrania opcji Brakprogram SSMA oznacza instrukcje przetwarzania transakcji jako błędy konwersji. Nuta: Oracle otwiera transakcje niejawnie. Aby emulować to zachowanie w programie SQL Server, należy ręcznie dodać instrukcje BEGIN TRANSACTION w miejscach, gdzie mają rozpocząć się transakcje. Alternatywnie możesz wykonać SET IMPLICIT_TRANSACTIONS ON polecenie na początku sesji. SSMA automatycznie dodaje SET IMPLICIT_TRANSACTIONS ON podczas konwertowania podroutyn z transakcjami autonomicznymi.Po wybraniu trybu konwersji w polu Tryb , narzędzie SSMA stosuje następujące ustawienie: domyślny/optymistyczny/pełny tryb: Tak |