);
CREATE INDEX &mw_prefix.l10n_cache_u01 ON &mw_prefix.l10n_cache (lc_lang, lc_key);
-CREATE TABLE &mw_prefix.wiki_field_info_full (
+-- do not prefix this table as it breaks parserTests
+CREATE TABLE wiki_field_info_full (
table_name VARCHAR2(35) NOT NULL,
column_name VARCHAR2(35) NOT NULL,
data_default VARCHAR2(4000),
uniq NUMBER(1),
nonuniq NUMBER(1)
);
-ALTER TABLE &mw_prefix.wiki_field_info_full ADD CONSTRAINT &mw_prefix.wiki_field_info_full_pk PRIMARY KEY (table_name, column_name);
+ALTER TABLE wiki_field_info_full ADD CONSTRAINT wiki_field_info_full_pk PRIMARY KEY (table_name, column_name);
/*$mw$*/
-CREATE PROCEDURE &mw_prefix.fill_wiki_info IS
+CREATE PROCEDURE fill_wiki_info IS
BEGIN
- DELETE &mw_prefix.wiki_field_info_full;
+ DELETE wiki_field_info_full;
- FOR x_rec IN (SELECT '&mw_prefix.' || t.table_name table_name, t.column_name,
+ FOR x_rec IN (SELECT t.table_name table_name, t.column_name,
t.data_default, t.data_length, t.data_type,
DECODE (t.nullable, 'Y', '1', 'N', '0') not_null,
(SELECT 1
FROM user_tab_columns t, user_tables ut
WHERE ut.table_name = t.table_name)
LOOP
- INSERT INTO &mw_prefix.wiki_field_info_full
+ INSERT INTO wiki_field_info_full
(table_name, column_name,
data_default, data_length,
data_type, not_null, prim,
/*$mw$*/
/*$mw$*/
-CREATE OR REPLACE PROCEDURE duplicate_table(p_oldname IN VARCHAR2, p_newname IN VARCHAR2, p_temporary IN BOOLEAN)
-IS
- v_oldname VARCHAR2(32) := RTRIM(LTRIM(p_oldname, '"'), '"');
- v_newname VARCHAR2(32) := RTRIM(LTRIM(p_newname, '"'), '"');
- v_prefix VARCHAR2(32) := SUBSTR(v_newname, 1, INSTR(v_newname, v_oldname, -1)-1);
- e_table_not_exist EXCEPTION;
- PRAGMA EXCEPTION_INIT(e_table_not_exist, -00942);
+CREATE OR REPLACE PROCEDURE duplicate_table(p_tabname IN VARCHAR2,
+ p_oldprefix IN VARCHAR2,
+ p_newprefix IN VARCHAR2,
+ p_temporary IN BOOLEAN) IS
+ e_table_not_exist EXCEPTION;
+ PRAGMA EXCEPTION_INIT(e_table_not_exist, -00942);
BEGIN
- BEGIN
- EXECUTE IMMEDIATE 'DROP TABLE '||v_newname||' CASCADE CONSTRAINTS';
- EXCEPTION WHEN e_table_not_exist THEN NULL; END;
-
- IF (p_temporary) THEN
- EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE '||v_newname||
- ' AS SELECT * FROM '||v_oldname||' WHERE ROWNUM = 0';
- ELSE
- EXECUTE IMMEDIATE 'CREATE TABLE '||v_newname||
- ' AS SELECT * FROM '||v_oldname||' WHERE ROWNUM = 0';
- END IF;
-
- FOR rc IN (SELECT column_name, data_default
- FROM user_tab_columns
- WHERE table_name = v_oldname
- AND data_default IS NOT NULL) LOOP
- EXECUTE IMMEDIATE 'ALTER TABLE '||v_newname||' MODIFY '||rc.column_name||' DEFAULT '||substr(rc.data_default, 1, 2000);
- END LOOP;
-
- FOR rc IN (SELECT REPLACE(REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl ('CONSTRAINT', constraint_name), 32767, 1),
- USER||'"."', USER||'"."'||v_prefix),
- '"'||constraint_name||'"', '"'||v_prefix||constraint_name||'"') DDLVC2
- , constraint_name
- FROM user_constraints uc
- WHERE table_name = v_oldname
- AND constraint_type = 'P') LOOP
- EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'PCTFREE')-1);
- END LOOP;
-
- FOR rc IN (SELECT REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl ('REF_CONSTRAINT', constraint_name), 32767, 1),
- USER||'"."', USER||'"."'||v_prefix) DDLVC2
- , constraint_name
- FROM user_constraints uc
- WHERE table_name = v_oldname
- AND constraint_type = 'R') LOOP
- EXECUTE IMMEDIATE rc.ddlvc2;
- END LOOP;
-
- FOR rc IN (SELECT REPLACE(REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl ('INDEX', index_name), 32767, 1),
- USER||'"."', USER||'"."'||v_prefix),
- '"'||index_name||'"', '"'||v_prefix||index_name||'"') DDLVC2
- , index_name
- FROM user_indexes ui
- WHERE table_name = v_oldname
- AND index_type != 'LOB'
- AND NOT EXISTS (SELECT NULL FROM user_constraints
- WHERE table_name = ui.table_name
- AND constraint_name = ui.index_name)) LOOP
- EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'PCTFREE')-1);
- END LOOP;
-
- FOR rc IN (SELECT REPLACE(REPLACE(UPPER(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl ('TRIGGER', trigger_name), 32767, 1)),
- USER||'"."', USER||'"."'||v_prefix),
- ' ON '||v_oldname, ' ON '||v_newname) DDLVC2
- , trigger_name
- FROM user_triggers
- WHERE table_name = v_oldname) LOOP
- EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'ALTER ')-1);
- END LOOP;
+ BEGIN
+ EXECUTE IMMEDIATE 'DROP TABLE ' || p_newprefix || p_tabname ||
+ ' CASCADE CONSTRAINTS';
+ EXCEPTION
+ WHEN e_table_not_exist THEN
+ NULL;
+ END;
+ IF (p_temporary) THEN
+ EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE ' || p_newprefix ||
+ p_tabname || ' AS SELECT * FROM ' || p_oldprefix ||
+ p_tabname || ' WHERE ROWNUM = 0';
+ ELSE
+ EXECUTE IMMEDIATE 'CREATE TABLE ' || p_newprefix || p_tabname ||
+ ' AS SELECT * FROM ' || p_oldprefix || p_tabname ||
+ ' WHERE ROWNUM = 0';
+ END IF;
+ FOR rc IN (SELECT column_name, data_default
+ FROM user_tab_columns
+ WHERE table_name = p_oldprefix || p_tabname
+ AND data_default IS NOT NULL) LOOP
+ EXECUTE IMMEDIATE 'ALTER TABLE ' || p_newprefix || p_tabname ||
+ ' MODIFY ' || rc.column_name || ' DEFAULT ' ||
+ substr(rc.data_default, 1, 2000);
+ END LOOP;
+ FOR rc IN (SELECT REPLACE(REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl('CONSTRAINT',
+ constraint_name),
+ 32767,
+ 1),
+ USER || '"."' || p_oldprefix,
+ USER || '"."' || p_newprefix),
+ '"' || constraint_name || '"',
+ '"' || p_newprefix || constraint_name || '"') DDLVC2,
+ constraint_name
+ FROM user_constraints uc
+ WHERE table_name = p_oldprefix || p_tabname
+ AND constraint_type = 'P') LOOP
+ dbms_output.put_line(SUBSTR(rc.ddlvc2,
+ 1,
+ INSTR(rc.ddlvc2, 'PCTFREE') - 1));
+ EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'PCTFREE') - 1);
+ END LOOP;
+ FOR rc IN (SELECT REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl('REF_CONSTRAINT',
+ constraint_name),
+ 32767,
+ 1),
+ USER || '"."' || p_oldprefix,
+ USER || '"."' || p_newprefix) DDLVC2,
+ constraint_name
+ FROM user_constraints uc
+ WHERE table_name = p_oldprefix || p_tabname
+ AND constraint_type = 'R') LOOP
+ EXECUTE IMMEDIATE rc.ddlvc2;
+ END LOOP;
+ FOR rc IN (SELECT REPLACE(REPLACE(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl('INDEX',
+ index_name),
+ 32767,
+ 1),
+ USER || '"."' || p_oldprefix,
+ USER || '"."' || p_newprefix),
+ '"' || index_name || '"',
+ '"' || p_newprefix || index_name || '"') DDLVC2,
+ index_name
+ FROM user_indexes ui
+ WHERE table_name = p_oldprefix || p_tabname
+ AND index_type != 'LOB'
+ AND NOT EXISTS
+ (SELECT NULL
+ FROM user_constraints
+ WHERE table_name = ui.table_name
+ AND constraint_name = ui.index_name)) LOOP
+ EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'PCTFREE') - 1);
+ END LOOP;
+ FOR rc IN (SELECT REPLACE(REPLACE(UPPER(DBMS_LOB.SUBSTR(DBMS_METADATA.get_ddl('TRIGGER',
+ trigger_name),
+ 32767,
+ 1)),
+ USER || '"."' || p_oldprefix,
+ USER || '"."' || p_newprefix),
+ ' ON ' || p_oldprefix || p_tabname,
+ ' ON ' || p_newprefix || p_tabname) DDLVC2,
+ trigger_name
+ FROM user_triggers
+ WHERE table_name = p_oldprefix || p_tabname) LOOP
+ EXECUTE IMMEDIATE SUBSTR(rc.ddlvc2, 1, INSTR(rc.ddlvc2, 'ALTER ') - 1);
+ END LOOP;
END;
/*$mw$*/
/*$mw$*/
BEGIN
- &mw_prefix.fill_wiki_info;
+ fill_wiki_info;
END;
/*$mw$*/