Czy w dowolnym momencie można uzyskać ciąg zawierający listę lokalnych nazw zmiennych i ich wartości, aby ułatwić debugowanie (np. Dodać do wiersza w tabeli dziennika bazy danych jako ciąg tekstowy)?Lokalne zmienne PL/SQL zrzutu
Odpowiedz
Nie, nie jest to możliwe.
DBMS_DEBUG
może kontrolować zmienne PL/SQL, ale wymaga zawieszenia uruchomionej sesji i dołączenia do niej drugiej sesji w celu przeprowadzenia inspekcji.
Zastanawiałem się nad stworzeniem interfejsu API do odrodzenia drugiej sesji (za pośrednictwem DBMS_SCHEDULER), która zatrzymałaby sesję wywołującą, sprawdzała ją, restartowała i raportowała.
To byłby bardzo zaangażowany i nie jestem pewien, czy byłby to obsługiwany przypadek użycia z DBMS_DEBUG
.
Krótko o tym, nic nie ma.
Nie można uzyskać łańcucha z informacjami debugowania, jednak za pomocą narzędzia Sql Developer (bezpłatne narzędzie Oracle) można DEBUGOWAĆ twój pl/sql jak zwykle podobnie jak każde inne narzędzie do debugowania dla innego języka, w tym VALUE dla dowolnej zmiennej.
To jest wzięte z dokumentacji:
HTH
Ta odpowiedź powinna zostać zwiększona o więcej głosów upvotes. Dzięki. – Wolfgang
Z pewnością jest to jakoś możliwe, ponieważ nie ma trybu debuging w Oracle DB, ale proponuję, aby korzystać z niektórych IDE jak PL/SQL Deweloper lub programista Oracle SQL, który ma wbudowane okno debugowania, które pozwala dokładnie to zrobić - aby ustawić punkt przełomowy, wejść, aby zobaczyć aktualne wartości zmiennych, itp. – Martina
Osobiście nie używam debuggerów, ale loguję. W zakresie PL/SQL, który jest dedykowaną tabelą dziennika, niewielką ilością wspierającego kodu PL/SQL, kompilacją warunkową i wieloma ładnie sformatowanymi ["print" -wartościami] (http://stackoverflow.com/q/189562/272735) . – user272735
Czy istnieje ogólny sposób przechwytywania wszystkich zmiennych lokalnych w celu ich zarejestrowania? –