我想使用公用表表達式和CROSS APPLY在v$sql
上運行查詢。ORA-00933:使用CROSS APPLY時SQL命令未正確結束
這裏是我的SQL:
WITH CTE AS
(SELECT
SUM(ELAPSED_TIME/1000/1000)/SUM(EXECUTIONS) AS Avg_Elapsed_Time_sec,
SUM(ELAPSED_TIME/1000/1000) AS Sum_Elapsed_Time_sec,
SUM(ELAPSED_TIME/1000/1000/(executions)) AS Sum_Avg_Elapsed_Time_sec,
SUM(EXECUTIONS) AS Sum_Executions,
SUM(ROWS_PROCESSED) AS Sum_Row_Processed,
SUM(ROWS_PROCESSED)/SUM(executions) AS Avg_Row_Processed,
SUM(FETCHES) AS Sum_Fetches,
SUM(FETCHES)/SUM(EXECUTIONS) AS Avg_Fetch,
SUM(DISK_READS) AS Sum_DiskRead,
SUM(DISK_READS)/SUM(EXECUTIONS) AS Avg_DiskRead,
SUM(APPLICATION_WAIT_TIME) AS Sum_Application_Wait_Time,
SUM(CONCURRENCY_WAIT_TIME) AS Sum_Concurrency_Wait_Time,
SUM(USER_IO_WAIT_TIME) AS Sum_User_IO_Wait_Time,
SUM(PLSQL_EXEC_TIME) AS Sum_PlSql_Exec_Time,
SUM(OPTIMIZER_COST) AS Sum_Optimizer_Cost,
SQL_ID,
HASH_VALUE,
COUNT(*) AS Entries
FROM
v$sql
WHERE
executions > 1
GROUP BY
SQL_ID,
HASH_VALUE
ORDER BY
Avg_Elapsed_Time_sec DESC
)
SELECT D.SQL_FULLTEXT,CTE.* FROM v$sql
CROSS APPLY //Error in this line
(
select SQL_FULLTEXT from v$sql where v$sql.SQL_ID=CTE.SQL_ID and rownum=1
) D
我怎樣才能解決這個問題? 但我得到這個錯誤:
ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause:
*Action:
應該使用橫向連接。 –
從[這裏](https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#BABDADCJ])CROSS APPLY具有JOIN沒有的功能 – Kaja
CROSS APPLY的instesd我使用了橫向連接,但我得到了另一個錯誤_ missing keyword_ – Kaja