今天用mybatis操作oracle,用PL/SQL看到数据表的字段,明明都是可以为NULL的字段,各个字段都报错,ORA-01400 字段不能为NULL. 后面请教了同事和朋友,才知道这是PL/SQL的坑,PL/SQL毕竟是个图形化界面工具,不是ORACLE自己开发的软件,也是存在BUG的,这个字段是否可以为NULL就是其中的一个bug. 另外我发现Mybatis会自动把java里面的null.“”.“ ”都转化成ORACLE的NULL.真是坑定啊,最后我只能将这三种情况都变成一个.英文句号.…
PL/SQL中文显示都显示成“?”的问题  首先我在sqlplus里面查询到的中文是正常的,然后再oracle里面的注册表里面看得nls_lang是SIMPLIFIED CHINESE_CHINA.ZHS16GBK. 执行select * from V$NLS_PARAMETERS看到的value项中不是SIMPLIFIED CHINESE: 所以进行 双击我的电脑,在空白处右键,属性,“高级”选项卡,点击环境变量, 在系统变量处点击“新建”,设置变量名:NLS_LANG ,  变量值:SIMP…
PL/SQL Developer显示中文乱码,可能是oracle客户端和服务器端的编码方式不一样. 解决方法: Select userenv('language') from dual; 设置环境变量 NLS_LANG, 值为AMERICAN_AMERICA.AL32UTF8.然后重启电脑就OK了.…
PL/SQL Developer 显示中文乱码问题简单版本:首先,通过 select userenv('language') from dual;查询oracle服务器端的编码, 如为: AMERICAN_AMERICA.US7ASCII 显示什么编码 就设置什么编码 在我们的客户端需要和服务器端的编码保持一致.因此在客户端,需要设置环境变量: NLS_LANG = AMERICAN_AMERICA.US7ASCII 即可.以上是默认编码GBK如下:在windows中创建一个名为“NLS_LAN…
一开始查询出来的字段名显示的是???,下面说说解决方法(本人也是在网上看到的,算是重复编辑一下): ------------------------------------------------------------------------------------------------- 首先查看这个字段的VALUE值,虽然我也不知道为什么要看,因为解决方法似乎跟这条查询语句没关系,有没有人给解释一下: select * from V$NLS_PARAMETERS 然后在环境变量里面去看看…
在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了. 如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer. 其它字符集设置同上.…
一.原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 二.查看和修改oracle数据库字符集: select userenv('language') from dual; 查询结果: AMERICAN_AMERICA.ZHS16GBK --修改oracle数据库字符集:(在SQL Plus中) sql> conn / as sysdba; sql> shutdown immediate; database closed.database dismounte…
简单版本: 首先,通过 select userenv('language') from dual; 查询oracle服务器端的编码,如为:AMERICAN_AMERICA.ZHS16GBK; 在我们的客户端需要和服务器端的编码保持一致. 因此在客户端,需要设置环境变量: NLS_LANG = AMERICAN_AMERICA.ZHS16GBK 即可. 以上是默认编码 GBK如下: 在windows中创建一个名为"NLS_LANG"的系统环境变量,设置其值为"SIMPLIFIE…
功能写完发现数据库里好多关键字段是空的,可以直接删掉,可直接: DELETE FROM 表名 WHERE 字段 IS NULL OR TRIM(字段) = ''…
用oracle进行查询的时候,有的时候会出现查询结果为乱码的情况,此时要设置一个环境变量NLS_LANG. 此变量的值如何获得呢?运行下面sql语句就可以获得: select userenv('language') from dual; 假设,你的运行结果为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 则添加一个环境变量“NLS_LANG”,让它的值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” OK,问题解决…
错误现象: 为了看表空间是否完整建好,打开相应的连接工具plsql,但是打不开,显示  “无法解析指定标识符”: 处理方式: 首先点击取消直接登录,打开工具---->首选项,在路径上看指定好没有,oracle的主目录名和 oci驱动的路径,如果还没有好,则打开我的电脑--->属性,高级系统设置--->高级--->环境变量, 在弹出来的对话框中找到path,然后修改对应的client_home和client_oci的路径(还是有疑问), 然后修改顺序把dbhome(服务器端)放到前面…
PL/SQL是没命名的存储过程,函数,触发器,PL/SQL块的语法格式如下: [declare] --声明部分,可选 begin --执行部分,必须 [exception] --异常处理部分,可选 end PL/SQL块每条语句必须用分号结束,单行注释--,多行注释/*...*/,下面是一个PL/SQL块例子 set serveroutput on declare --声明变量 a int :=  1; --声明并且赋值 address varchar2(128); mobilephone va…
1.PL/SQL Developer中文字段显示乱码 原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 2.PL/SQL Developer编码格式设置详细的解决方案如下: 首先,通过 select userenv('language') from dual; 查询oracle服务器端的编码, 如为: AMERICAN_AMERICA.US7ASCII 显示什么编码 就设置什么编码 在我们的客户端需要和服务器端的编码保持一致. 因此在客户端,需要设置环境变量…
pl/sql developer编码格式设置   一.pl/sql developer 中文字段显示乱码  原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 二.查看和修改oracle数据库字符集: select userenv('language') from dual; 查询结果: SIMPLIFIED CHINESE_CHINA.AL32UTF8 --修改oracle数据库字符集:(在SQL Plus中) sql> conn / as sysdba;…
一.pl/sql developer 中文字段显示乱码 原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 二.查看和修改oracle数据库字符集: select userenv('language') from dual; 查询结果: SIMPLIFIED CHINESE_CHINA.AL32UTF8 --修改oracle数据库字符集:(在SQL Plus中) sql> conn / as sysdba; sql> shutdown immediate;…
一.PL/SQL记录 定义: TYPE <类型名> IS RECORD <列名1 类型1,列名2 类型2,...列名n 类型n,> [NOT NULL] <列的类型>可以为Oracle的数据类行以及用户自定义类型;可以是记录类型的嵌套. 二.PL/SQL表 定义: TYPE <类型名> IS TABLE OF <列的类型> [NOT NULL] INDEX BY BINARY_INTEGER; <列的类型>可以为Oracle的数据类行…
ERR出现的场景再现: 使用 PL/SQL导出按钮,选择‘CSV文件’,保存为1.csv,后用execl打开,复制到VuGen中作为login脚本的参数化文件username. ERR及发现过程: 在跑login场景时,使用的参数化了用户名与密码,并且使用 random + iteration的组合方式,总会出现2-3个登录事务失败,最后在脚本中增加lr_log_message()函数输出每次的用户名,同时更改方式为 unique + iteration,先跑了10000个用户,来查看究竟是哪些…
立此存照 匿名PL/SQL 语法结构:PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序包含了一个或多个逻辑块,每一块都可以划分3个部分.变量在使用前必须声明,PL/SQL提供了独立的专门用于处理异常的部分. 在PL/SQL块中可以使用SELECT INSERT  UPDATE  DELETE等DML语句.事务控制语句以及SQL函数等,不允许直接使用CREATE DROP或者ALERT等DDL语句,但可以通过动态SQL来执行. 三个部分为: 1. 声明部分:…
SQL is not very flexible and it cannot be made to react differently to differing sutuations easily. In  SQL queries we normally tell database what we want but not tell it how to do it. SQL : give commands, commands complete with ; PL/SQL : follow the…
注意:所有软件最后不要安装在program files (x86)下  PL/SQL Developer显示Not logged on 以管理员的身份打开PL/SQL Developer 2.   tns无法解析指定的连接标识符 检查Oracle client软件的安装目录下..\oracle\product\10.2.0\client_1\NETWORK\ADMIN下的tnsnames.ora连接字符串是否正确,检测方法为:在命令行下用tnsping 本地服务名,看能否连接成功,注:本地服务名…
原文参考:http://plsql-tutorial.com/ 组成: 声明部分(可选) 执行部分(必选) 异常处理(可选)       声明:         DECLARE       执行:         BEGIN             ...         END       异常处理:         EXCEPTION   每个语句必须以“;”结束: PL/SQL Block可嵌套: /表示执行PL/SQL块: 优点: 块结构         可嵌套,任务或者逻辑模块的集合,…
第一种方法: 判断字段是否为空,如果为空转成你要的字符 1.oracle : nvl("字段名",'转换后的值')://字段名是双引号,转换后的值是单引号 2.sql Server: isnull("字段名",'转换后的值')//字段名是双引号,转换后的值是单引号 3.mySql: ifnull(字段名,'转换后的值')//字段名不加引号,转换后的值是单引号 注:mySql 也有isnull  但是只判断并不会转换 例子: oracle SELECT USERNAM…
问题描述: 登陆PL/SQL,执行SQL语句后,输出的中文标题显示成问号????:条件包含中文,则无数据.         如果不是中文,需要修改注册表值,方法如下: 进入注册表:Win+r,输入regedit后回车,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(笔者安装的是Oracle 10g,这里显示成KEY_OraDb10g_home1),找到NLS_LANG(如果没有就新建),查看数值数据是否为:SIMPLIFIE…
PL/SQL Developer 如何显示行号: PL/SQL Developer 高亮当前行: OK!…
今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如:      FROM SFISM4.R_WIP_TRACKING_T A WHERE  A.IN_STATION_TIME IS NULL   总结: 相应TO_NUMBER(NULL)也是可行, MAX 也是可行得,没有问题. 3, 回归主题, SQL 原本的样子要做成这个样:   INSERT IN…
有时,因为机器突然断电或其他原因PL/SQL它甚至不能在数据库表后显示.序列和其它元素.使用SQL Windows运行查询一般查询,登录或同样的现象再次. 我是不是可以解决因重复登录的猜测是,PLSQL登录史上的一个问题.它清掉帐号登录历史.详细过程,如下面: 工具-->首选项-->登录历史------删除账户的登录历史 也可通过例如以下操作入口进行操作: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE1MjUwOTkzMDI=/font/5a…
PL/SQL查询时,如果Number(17)以上的大数,会显示为科学计数法 解决方法: TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中Number fields to_char即可.…
问题: 最近在做项目中,ID使用了长整形,10进制数值大约长度17位,在pl/sql developer 上数值由科学计数法显示. 在查看时不是很方便,且数值进行了省略显示,不准确. 解决方法: 在tools菜单下,Tools - Prefrence - SQL Window - 选择:"Number fields to_char" ,保存.…
oracle里默认的date显示样式: 我的是汉化过的: 进入后,点击工具->首选项->日期/时间设置即可: 设置后在pl/sql developer中查看: 英文版的操作步骤: Tools --> Preferences... --> 左侧User Interface中的Date/Time…
在开发过程中,遇到有个问题:在Oracle数据库中,利用PL/SQL数据库开发工具来开发,某一字段的长度不能满足需求时候,采用下面的语法就行修改 alter table 表名 modify 字段名 长度: 其中1为表名: 2为这个表里面的某一个字段: 3是这个表里面这一字段的类型长度: 在开始不知道怎么修改这个字段长度的时候,上网查看,结果是错误的,这个错误不好找,eg: alter table cust_device_apply modify column usecar_nature varc…