Files
oracle/tpt/sqlbindsum.sql
2026-03-12 21:23:47 +01:00

42 lines
1.2 KiB
SQL

COL BIND_NAME FOR A30
SELECT * FROM (
SELECT
s.sql_id
, position
, bind_name
, COUNT(DISTINCT s.address) parents
, COUNT(DISTINCT RAWTOHEX(s.address||':'||s.child_number)) children
, COUNT(DISTINCT datatype) datatypes
--, COUNT(DISTINCT datatype)||CASE WHEN COUNT(DISTINCT datatype) > 1 THEN ' ('||TO_CHAR(MIN(datatype))||'..'||TO_CHAR(MAX(datatype))||')' END for_example
, COUNT(DISTINCT max_length) maxlengths
, COUNT(DISTINCT array_len) maxarraylens
FROM
v$sql s
, v$sql_bind_metadata sbm
WHERE
s.child_address = sbm.address
AND s.sql_id LIKE '&1'
GROUP BY
s.sql_id
, sbm.position
, sbm.bind_name
ORDER BY
s.sql_id
, sbm.position
)
WHERE
rownum <= 30
/
-- 1 ADDRESS RAW(8)
-- 2 POSITION NUMBER
-- 3 DATATYPE NUMBER
-- 4 MAX_LENGTH NUMBER
-- 5 ARRAY_LEN NUMBER
-- 6 BIND_NAME VARCHAR2(30)
-- 7 CON_ID NUMBER