Wypowiedzi
-
Porównywanie schematów jest conajmniej od wersji 2.0 - jeśli dostępna funkcjonalność to za mało to można skorzystać z zewnętrznej wtyczki, ale wtedy nie będzie za darmo...
Monitor sesji też jest, pokazuje bieżące zapytanie i ewentualnie pokazuje czy sesja na coś czeka.
Od wersji 3ciej jest zintegrowany z SQL Advisor-em - wmagane są tylko odpowiednie granty (podobnie jak monitora sesji). To jedyny (a może się mylę, ale jedyny darmowy) sposób aby dowiedzieć się czy przypadkiem Oracle nie ma jakiegoś pomysłu na optymalizację zapytania; czasem podpowie jakiś indeks, czasem lepszy plan). -
Do budowy aplikacji w sensie wsparcia programowania w SQL / PL-SQL.
-
APEX służy do tworzenia aplikacji, no i do developerki jest za darmo (z resztą jak większość narzędzi Oracle-a).
Ja korzystam z SqlDeveloper-a - ma swoje humory, ale daje radę. Do optymalizacji wystarczy plan + autotrace +tkprof czyli wszystko to, co Oracle ma pod ręką. Do tego jeszcze SqlAdvisor i już możemy brać się do pracy ;-)
Do tworzenia pakietów i całej reszty polecam ulubiony edytor ;) Dla niektórych wadą tego rozwiązania może być brak podpowiedzi nazw tabel / pól i konieczność ciągłego kopiowania i wklejania do wybranego TOAD-a / TOry / Sqldeveloper-a ale latwiej w ten sposób zapanować nad kodem (łatwiejsza integracja z repozytorium) - z własnego doświadczenia nie polecam bezpośredniej edycji kodu w "bazie" - łatwo coś usunąć lub nadpisać nic o tym nie wiedząc.
Może jestem staromodny ale pewne rzeczy wolę mieć pod kontrolą; 120000 linii PL/SQL-a to nie jest coś, co można od tak sobie poprawić w bazie nic nikomu nie mówiąc...
Poza tym SqlDeveloper-em możemy porównywać schematy, kopiować, i takie tam różne :)
No i jest za darmo. -
No to może tak:
SELECT XMLQuery(
'for $i in /zbior/cv
where $i/jezyki/jezyk/nazwa = "Angielski"
return $i'
PASSING value(c) RETURNING CONTENT) "cv-ki"
FROM cv c;
powyższe zapytanie zwraca cv-ki ze znajomością danego języka. -
Łukasz Schabek:
Cześć,
Spróbuj tak:
SELECT EXTRACT(VALUE(c), '//cv/jezyki/jezyk[nazwa="Niemiecki"]') FROM cv c
Cześć
ja proponuję lekką modyfikację (zakładam, że wynikiem zapytania miało być całe CV a nie node z językiem jak wyżej):
SELECT EXTRACT(value(c), '//cv[//jezyki/jezyk/nazwa="Rosyjski"]') FROM cv c;
powyższe zapytanie zwraca wynik zgodny z zapytaniem Pawła.