Jestem nowy w firmie Oracle. Czy istnieje słowo kluczowe wbudowane, aby zastosować to samo zadanie SQL Server?Jaki jest odpowiednik SQL Server APPLY w Oracle?
Odpowiedz
myślę odpowiednikiem punktu stosuje w Oracle nazywa przyłączyć się boczne. Połączenie boczne w Oracle występuje po dołączeniu do tabeli A z funkcją F, która wyprowadza wiersze, a ta funkcja ma kolumny A jako parametry.
Zbudujmy mały przykład z tej konfiguracji:
SQL> CREATE OR REPLACE TYPE emp_row AS OBJECT (
2 empno NUMBER(4),
3 ename VARCHAR(10),
4 job VARCHAR(9),
5 deptno NUMBER(2)
6 );
7/
Type created
SQL> CREATE OR REPLACE TYPE emp_tab AS TABLE OF emp_row;
2/
Type created
SQL> CREATE OR REPLACE FUNCTION get_emp_dept(p_deptno NUMBER) RETURN emp_tab IS
2 l_result emp_tab;
3 BEGIN
4 SELECT emp_row(empno, ename, job, deptno)
5 BULK COLLECT INTO l_result
6 FROM emp
7 WHERE deptno = p_deptno;
8 RETURN l_result;
9 END get_emp_dept;
10/
Function created
boczny przyłączenia jest automatyczne w Oracle, nie ma specjalnego słowa kluczowego:
SQL> SELECT dept.dname, emp.empno, emp.ename, emp.job
2 FROM dept
3 CROSS JOIN TABLE(get_emp_dept(dept.deptno)) emp;
DNAME EMPNO ENAME JOB
-------------- ----- ---------- ---------
ACCOUNTING 7782 CLARK MANAGER
ACCOUNTING 7839 KING PRESIDENT
ACCOUNTING 7934 MILLER CLERK
RESEARCH 7369 SMITH CLERK
RESEARCH 7566 JONES MANAGER
RESEARCH 7788 SCOTT ANALYST
RESEARCH 7876 ADAMS CLERK
RESEARCH 7902 FORD ANALYST
SALES 7499 ALLEN SALESMAN
SALES 7521 WARD SALESMAN
SALES 7654 MARTIN SALESMAN
SALES 7698 BLAKE MANAGER
SALES 7844 TURNER SALESMAN
SALES 7900 JAMES CLERK
14 rows selected
W Oracle możemy użyć funkcji potokowej w klauzuli FROM
za pomocą funkcji TABLE()
.
SQL> select * from table(get_dept_emps (10))
2/
ENAME SAL MGR
------------------------------ ---------- ---------------------
BOEHMER 2450 SCHNEIDER
SCHNEIDER 5000
KISHORE 1300 BOEHMER
SQL>
ten może być traktowany jak inne tabele, na przykład, przez łączenie z nim:
SQL> select t.*
2 , e.empno
3 from
4 table(get_dept_emps (10)) t
5 join emp e
6 on e.ename = t.ename
7/
ENAME SAL MGR EMPNO
---------- ---------- ---------- ----------
BOEHMER 2450 SCHNEIDER 7782
SCHNEIDER 5000 7839
KISHORE 1300 BOEHMER 7934
SQL>
dziękuję za pakiet APC .. to jest to czego oczekiwałem ... – oscar
Od 12c, Oracle obsługuje zarówno APPLY
i LATERAL
natywnie: https://docs.oracle.com/database/121/NEWFT/chapter12101.htm#FEATURENO10330
- 1. Co to jest odpowiednik SQL Server dla zmiennych wiążących Oracle w dynamicznym SQL?
- 2. Serwer SQL: odpowiednik RowVersion w Oracle
- 3. Odpowiednik MySQL \ G w Oracle SQL * Plus
- 4. Co to jest odpowiednik CHARINDEX (SQL SERVER) w POSTGRESQL?
- 5. Odpowiednik StyleCop dla SQL Server?
- 6. `pokaż utwórz odpowiednik tabeli` w Oracle Oracle
- 7. Jak obsługiwać pustych wierszy w CROSS APPLY [SQL Server]
- 8. Co to jest odpowiednik PostgreSQL dla SQL Server NVARCHAR?
- 9. Jaki jest odpowiednik LISTAGG w postgresie?
- 10. Odpowiednik T-SQL dla operatora% TYPE Oracle?
- 11. Co to jest odpowiednik Oracle dla MS SQL Server Management Studio DARMOWA EDYCJA?
- 12. Ekwiwalenty SQL Server TOP
- 13. Oracle odpowiednik Java Varargs
- 14. Migracja z Oracle do Sql Server
- 15. Odpowiednik SQLite funkcji SQL Server DateAdd
- 16. Importowanie ORACLE SDO_GEOMETRY do SQL Server Geometry
- 17. Co to jest odpowiednik programu SQL Server INET_ATON
- 18. Czy istnieje odpowiednik funkcji SQL Server NewId()?
- 19. Jaki jest odpowiednik „OnBackKeyPress”
- 20. Pomóżcie umieścić terminologię Oracle w terminologii SQL Server
- 21. Jaki jest cel PAD_INDEX w tym ograniczeniu programu SQL Server?
- 22. Jaki jest rozmiar zawartości pola obrazu w SQL Server?
- 23. Oracle odpowiednik PostgreSQL INSERT ... RETURNING *;
- 24. MySQL odpowiednik SEQUENCE.NEXTVAL Oracle
- 25. Jaki jest ekwiwalent C# dla Oracle PL/SQL COALESCE?
- 26. SQL Server równoważne Oracle CONNECT BY i LEVEL pseudocolumn
- 27. Oracle odpowiednik DISTINCT Postgres?
- 28. Python: Jaki jest odpowiednik PHP "=="
- 29. Jaki jest obiektowy odpowiednik _.pluck
- 30. Operator konkatenacji ciągów w Oracle, Postgres i SQL Server
Czy nie lepiej używać varchar2() zamiast varchar() w definicji typu? – tuinstoel
@tuinstoel: masz rację, dobrze jest używać VARCHAR2 w Oracle. –
Pytanie jest nieco zbyt abstrakcyjne. Są przypadki, w których takie podejście w ogóle nie pomaga, np. http://stackoverflow.com/questions/19009476/konwersja-a-prywatna-tablica-na-niebieskim-sql –