Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)_oracle

来源:脚本之家  责任编辑:小易  

在C#中对数据库访问操作使用存储过程,试问存储过程的参数据区分大小写或字段是否相同!www.zgxue.com防采集请勿采集本网。

前言

今天查询一个数据字段一直提示字符无效,明明在数据库表字段中是存在的;

查询后得知,数据库表字段为小写时,查询需要将字段名小写并加上双引号;

表名同理,我这里表名是大写,暂时不需要改。

搜到一个批量修改字段名为大写的存储过程,如下:

登陆到要修改的用户下,

执行:

beginfor cl in (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(column_name) not in('SIZE','CHECK')) loopbeginexecute immediate 'alter table '||cl.table_name||' rename column "'|| cl.column_name ||'" to '||upper(cl.column_name);exceptionwhen others thendbms_output.put_line(cl.table_name||'.'||cl.column_name||'已存在');end;end loop;end;

即完成该用户下所有表字段名改为大写的过程。

附上批量修改表名为大写的存储过程,以备后用:

-- oracle 批量修改表名为大写(当前登录用户)beginfor c in (select table_name tn from user_tables where table_name <> upper(table_name)) loopbeginexecute immediate 'alter table "'||c.tn||'" rename to '||c.tn;exceptionwhen others thendbms_output.put_line(c.tn||'已存在');end;end loop;end;

再附 字段类型批量修改(此时表内无内容):

DECLARE CURSOR TEMP IS SELECT TABLE_NAME,COLUMN_NAME,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE DATA_TYPE = 'NVARCHAR2' AND ROWNUM < 100; STR VARCHAR2(100) := ''; BEGIN FOR S IN TEMP LOOP STR := 'ALTER TABLE '||S.TABLE_NAME||' MODIFY('||S.COLUMN_NAME||' VARCHAR2(200))'; DBMS_OUTPUT.PUT_LINE(STR); EXECUTE IMMEDIATE STR ; END LOOP; END;

到此这篇关于Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)的文章就介绍到这了,更多相关Oracle批量将表字段名转换为大写内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:Oracle 大小写转换函数实例详解

标准的来存储过程自2113 create or replace procedure P_STR(v_str IN varchar2)ISv_len number(10);v_dx varchar2(256);j int;beginj:=0;select length(v_str) into v_len from dual;select lower(v_str) into v_dx from dual;for i in 1 .. v_lenloopif substr(v_str,i,1)<>substr(v_dx,i,1)then j:=j+1;end if;end loop;dbms_output.put_line(j);end;--执行BEGIN p_str('afDASDF');END;引号里输5261入字4102符即可1653,^这种一个2113输入一5261个输4102出的用函1653数。内。 create or replace function uppernumb(invar in varchar2) return numberis begin return(length(REGEXP_REPLACE(invar,'[^容[:upper:]]', '')));end;--测试select uppernumb('Uisj79192GBSKL') from dual;6,一条 SQL 语句足够了:636f70793231313335323631343130323136353331333332613139SELECT NVL( LENGTH( TRANSLATE( '2229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || '2229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') ),0) AS "Result"FROM DUAL;就是把需要保留的都标记下来,其他的都替换为空白SELECT NVL( LENGTH( TRANSLATE('2KRW229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || '2KRW229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') ),0) AS "Result"FROM DUAL;SELECT NVL( LENGTH( TRANSLATE('2229A', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || '2229A', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') ),0) AS "Result"FROM DUAL;SELECT NVL( LENGTH( TRANSLATE('2229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || '2229', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') ),0) AS "Result"FROM DUAL;内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • linux下oracle数据库用户创建方法详解
  • 数据库表分割技术浅析(水平分割/垂直分割/库表散列)
  • oracle 集合
  • rman恢复方案和oracle异机恢复
  • 在spring中用select last_insert_id()时遇到问题
  • oracle对两个数据表交集的查询
  • oracle监听口令及监听器安全详解
  • oracle中左填充(lpad)和右填充(rpad)的介绍与用法
  • oracle 12cr2查询转换教程之表扩展详解
  • centos7下oracle12c的安装与配置图文教程(详细)
  • 写一个oracle 存储过程,统计输入字符串中大写字母...
  • 存储过程的参数是否区分大小写!
  • Oracle数据库中,存储过程中的变量是否需要区分大...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页oracle 大小写转换函数实例详解linux下oracle数据库用户创建方法详解数据库表分割技术浅析(水平分割/垂直分割/库表散列)oracle 集合rman恢复方案和oracle异机恢复在spring中用select last_insert_id()时遇到问题oracle对两个数据表交集的查询oracle监听口令及监听器安全详解oracle中左填充(lpad)和右填充(rpad)的介绍与用法oracle 12cr2查询转换教程之表扩展详解centos7下oracle12c的安装与配置图文教程(详细)oracle 查看表空间的大小及使用情linux系统(x64)安装oracle11g完oracle数据库下载及安装图文操作oracle存储过程基本语法介绍oracle 10g 安装教程[图文]oracle 如何查询被锁定表及如何解基于ora-12170 tns 连接超时解决oracle数据库tns配置方法详解oracle中to_date详细用法示例(ororacle 创建表空间详细介绍oracle查询重复数据和删除重复记录示例分oracle数据库的空间管理技巧oracle to_date()函数的用法介绍oracle数据库中的级联查询、级联删除、级oracle中添加删除主键的方法centos8下安装oracle客户端完整(填坑)过程windows sever 2012下oracle 12c安装配置oracle9i数据库异常关闭后的启动oracle 中contains 函数的用法oracle数据库索引失效
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved