获取oracle中索引的完整ddl
我正在使用oracle 11g/12c。我想获取数据库中索引的ddl。为此,我使用了查询-获取oracle中索引的完整ddl,oracle,sqlplus,dbms-metadata,Oracle,Sqlplus,Dbms Metadata,我正在使用oracle 11g/12c。我想获取数据库中索引的ddl。为此,我使用了查询- SELECT DBMS_METADATA.GET_DDL('INDEX','SYS_IL0000091971C00001$$','CCEEXPERTS') FROM dual “SYS_il000091971c00001$$”是我的索引名,“CCEEXPERTS”是我的所有者名 从这里我得到了ddl- CREATE UNIQUE INDEX "CCEEXPERTS"."SYS_IL0000091971
SELECT DBMS_METADATA.GET_DDL('INDEX','SYS_IL0000091971C00001$$','CCEEXPERTS') FROM dual
“SYS_il000091971c00001$$”是我的索引名,“CCEEXPERTS”是我的所有者名
从这里我得到了ddl-
CREATE UNIQUE INDEX "CCEEXPERTS"."SYS_IL0000091971C00001$$" ON "CCEEXPERTS"."DATABLOB" (
我的实际ddl是-
CREATE UNIQUE INDEX "CCEEXPERTS"."SYS_IL0000091971C00001$$" ON "CCEEXPERTS"."DATABLOB" (
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
PARALLEL (DEGREE 0 INSTANCES 0) ;
在实际的ddl中,在“CCEEXPERTS”“DATABLOB”(,下一行字符)之后,ddl是truncted
如何获得完整的ddl?请帮助我
提前感谢。在SQLplus中,在运行过程之前设置这些参数
set long 100000
set longchunksize 100000
Oracle有一个用于检索和自定义返回的DDL的包。所有SQL索引的默认设置:
select DBMS_METADATA.GET_DDL('INDEX', index_name)
from all_indexes
where owner in (USER, 'USER_OTHER_THAN_LOGGED_IN_USER');
pl/sql块示例:
set serveroutput on
DECLARE
V_DDL CLOB;
BEGIN
DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'PRETTY', true);
dbms_metadata.set_transform_param(dbms_metadata.session_transform,'TABLESPACE',false);
V_DDL := DBMS_METADATA.GET_DDL('VIEW', 'A_VIEW_NAME');
DBMS_OUTPUT.PUT_LINE(V_DDL);
END;
这与tsql有什么关系?很可能在换行后你看不到东西。这是你的问题。你是如何运行你的查询的?我认为应该是longchunksize。