Oracle如何使用大写列名称

Oracle如何使用大写列名称,oracle,function,uppercase,Oracle,Function,Uppercase,我想创建一个函数,它在oracle数据库中以大写形式显示所有列的名称。 我不是每天都使用oracle,所以我需要帮助 我希望这样,但对于Oracle: CREATE OR REPLACE FUNCTION uppercase_fields(schemaname text) RETURNS void AS $$ DECLARE r RECORD; full_table text; geom_type_count integer; BEGIN FOR r IN EXECUTE

我想创建一个函数,它在oracle数据库中以大写形式显示所有列的名称。 我不是每天都使用oracle,所以我需要帮助

我希望这样,但对于Oracle:

CREATE OR REPLACE FUNCTION uppercase_fields(schemaname text) RETURNS void AS $$
DECLARE
  r RECORD;
  full_table text;
  geom_type_count integer;
BEGIN
  FOR r IN
    EXECUTE 'SELECT table_name, table_schema, column_name FROM information_schema.columns WHERE table_schema = $1 AND column_name <> upper(column_name)'
      USING schemaname
  LOOP
    EXECUTE 'ALTER TABLE "' || r.table_schema || '"."' || r.table_name || '" RENAME "' || r.column_name || '" to "' || upper(r.column_name) || '"';
  END LOOP;
END;
$$ LANGUAGE plpgsql;

感谢

Oracle作为默认功能,将所有不带引号的表/列标识符转换为大写-因此您不需要使用大写函数;只需将标识符保留为不带引号

要查找所需数据,您需要数据字典中的“所有”选项卡列或“用户”选项卡列表:

BEGIN
  FOR r IN ( SELECT owner, table_name, column_name
             FROM   ALL_TAB_COLUMNS
             WHERE  owner IN ( 'your', 'list' , 'of', 'tablespaces' )
             AND    column_name <> UPPER( column_name )
           )
  LOOP
    EXECUTE 'ALTER TABLE "' || r.owner || '"."' || r.table_name
            || '" RENAME COLUMN "' || r.column_name || '" TO ' || r.column_name;
  END LOOP;
END;
/

Oracle作为默认功能,将把所有不带引号的表/列标识符转换为大写-因此您不需要使用大写函数;只需将标识符保留为不带引号

要查找所需数据,您需要数据字典中的“所有”选项卡列或“用户”选项卡列表:

BEGIN
  FOR r IN ( SELECT owner, table_name, column_name
             FROM   ALL_TAB_COLUMNS
             WHERE  owner IN ( 'your', 'list' , 'of', 'tablespaces' )
             AND    column_name <> UPPER( column_name )
           )
  LOOP
    EXECUTE 'ALTER TABLE "' || r.owner || '"."' || r.table_name
            || '" RENAME COLUMN "' || r.column_name || '" TO ' || r.column_name;
  END LOOP;
END;
/

要将Oracle中的所有列名称更改为大写,请使用以下解决方案:

DECLARE
  TARGET_TABLE_NAME VARCHAR2(31) := 'ENTER_YOUR_TARGET_TABLE_NAME_HERE';
BEGIN
    FOR I IN (
            SELECT
                    COLUMN_NAME
            FROM
                    ALL_TAB_COLUMNS
            WHERE
                    TABLE_NAME = TARGET_TABLE_NAME
            AND
                    COLUMN_NAME <> UPPER(COLUMN_NAME)
        )
    LOOP
        EXECUTE IMMEDIATE 'ALTER  TABLE ' ||
                                TARGET_TABLE_NAME ||
                          ' RENAME COLUMN "' ||
                                I.COLUMN_NAME ||
                          '" TO ' ||
                                UPPER(I.COLUMN_NAME);
    END LOOP;
END;
/

只需在此处输入_your_target_table_name_,即可替换目标表的名称

要在Oracle中更改为大写的所有列名称,请使用以下解决方案:

DECLARE
  TARGET_TABLE_NAME VARCHAR2(31) := 'ENTER_YOUR_TARGET_TABLE_NAME_HERE';
BEGIN
    FOR I IN (
            SELECT
                    COLUMN_NAME
            FROM
                    ALL_TAB_COLUMNS
            WHERE
                    TABLE_NAME = TARGET_TABLE_NAME
            AND
                    COLUMN_NAME <> UPPER(COLUMN_NAME)
        )
    LOOP
        EXECUTE IMMEDIATE 'ALTER  TABLE ' ||
                                TARGET_TABLE_NAME ||
                          ' RENAME COLUMN "' ||
                                I.COLUMN_NAME ||
                          '" TO ' ||
                                UPPER(I.COLUMN_NAME);
    END LOOP;
END;
/

只需在此处输入_your_target_table_name_,即可替换目标表的名称

无需任何函数。Oracle已经有一个名为UPPER的内置函数,可以将小写转换为大写,无需任何函数。Oracle已经有一个名为UPPER的内置函数,用于将小写转换为大写