显示语句不对是什么情况?

   前两天项目中遇到mysql乱码的问题,折腾了好几天,查了好多资料,最后在恍然大悟中解决了。今天先简单的说说这个事,然后把在这个事中查找学习到的心得记录下来,以与大家分享,亦备后用。

结果问题依旧!哪怕我在代码中用jdbc直接insert into 表 values(中文),在数据库中client用select查询都是乱码,用jdbc查出来打印到日志上是乱码,显示到页面上还是乱码。从数据的"行走"路径看,编码格式都是统一的,应该没有问题,抓狂!难道是url设置的转码没起作用?难道是tomcat对请求自动设置了其它编码?难道跟linux操作系统编码有关?第一种情况最有可能,我找到管服务器的人员,要求修改character_set_client=utf8,结果吃了闭门羹:公司数据库设置都是统一的,不能随便修改;况且以前项目使用的数据库也是这样的设置,可以在程序中解决乱码。对于第二个问题,也是公司服务器上的tomcat,我知道会得到什么回答了,也就不再自讨没趣。对于第三问题,从页面输入和显示的数据,应该跟操作系统没有关系吧,再说了这个改起来更费劲,只是做个参考。继续抓狂!静下心来,从我在代码中用jdbc直接insert into 表 values(中文)这个测试看,跟web传输过程中的编码没有关系,我决定把问题锁定在建立连接时转码问题。又仔细查了几遍,发现我在使用Proxool建立连接池时使用的是properties文件,而原有项目使用的是xml文件,恍然大悟,转码方式不能照搬!于是把

中的amp;全部去掉,重试,页面上出现了笑容灿烂的汉字。高兴!

二.为了这么个简单的问题,查阅了大量资料,从结果上看,并没有直接上用的,可是感觉收获颇多,相信对jsp和mysql乱码的问题又有了进一步的认识。

四.怎么在程序里查看客户端发送给服务器的SQL使用什么编码呢?

在客户端写个程序,执行SQL语句:


注意第一行就可以了,可见使用的是latin1。

而latin1本身就无法表示汉字,经过这个编码打包的SQL语句发给Server,Server也用Latin1解析也无法还原。

所以,我总是写乱码到DB。

27. 关于触发器,下列说法正确的是( B) (A)可以在表上创建INSTEAD OF 触发器

(B)语句级触发器不能使用“:old”和“:new” (C)行级触发器不能用于审计功能 (D)触发器可以显式调用

30. 按照对(B)的管理方式,可以将表空间分为数据字典管理表空间和本地化管理表空间

31. 下列那个文件不属于数据库Database的一部分(B )

A)控制文件 B)参数文件 C)数据文件 D)日志文件

32. 下列选项中不是本地Net服务名所包含的内容的是(C )

A)主机名(IP地址) B)端口号 C)控制文件名 D) 实例名

33. 下列关于Oracle后台进程的说法中不正确的是( C)

A)SMON的一个重要的职责是进行实例恢复 B)PMON的一个职责是清理孤儿会话

C)LGWR在CKPT进程未启动的情况下承担起生成检查点的职责

D)DBWR负责将用户请求的数据放入到缓存,并在适当的时机将缓存中的数据写入文件

35. 下列关于Oracle启动的说法中不正确的是( D)

36. 在Oracle中,当用户执行Select语句时,下列哪个进程负责从磁盘中获得用户需要的

38. 在windows操作系统中,Oracle的( A)服务监听并接受客户端应用程序的连接请求

39. 下列有关包的使用说法错误的是( C)

A)在不同的包内模块可以重名

B)包的私有过程不能被外部程序调用

C)包体中的过程和函数必须在包头部分说明 D)必须先创建包头,然后创建包体

40. 实例启动后,数据库处于( C)阶段。

41. 当Oracle数据库启动时,如果由于操作系统的原因,一个数据文件或重做日志文件无

法正常打开或发生故障,将发生怎样的情况?(B ) A. oracle将返回错误信息,并且打开数据库 B. oracle将返回错误信息,不能打开数据库

C. oracle将返回错误信息,并自动启动数据库恢复程序 D. oracle将忽略这些文件,进入正常工作状态

42. 数据库实例启动的三个阶段依次是( B )。

43. Diane 是一个新入行的DBA,当数据库服务器正在运行时,她执行了shutdown命令,

然后她发现Oracle在等待所有已连接到数据库的用户断开连接。请问她是采用哪种方式关闭数据库的?( A )

44. 数据库启动过程中何时读参数文件?(C )

A. 打开数据库时 B. 装载数据库时 C. 实例启动时 D. 每个阶段都要读

45. 以下哪条命令用于删除一个约束?( C )

46. 位图索引最适用于以下哪种列?( A )

A. 重复值很高的列 B. 重复值很低的列 C. 频繁插入的列 D. 频繁更新的列

A. 用户创建的数据库对象 B. 用户创建的临时对象 C. 用户创建的系统对象 D. 以上都不对

48. 以下哪个不是系统权限?(A )

49. 在创建用户的命令中,下列哪个关键字是限制用户可以使用的存储空间的?( D )

50. 以下哪个不是预定义角色?( D )

51. 以下哪个不是创建用户过程中必要的信息?(B )

52. 数据字典由以下哪项组成?(A )

A. 表和视图 B. 用户和权限 C. 角色与视图 D. 用户与表

53. 建立表结构的SQL语句是(B )。

54. 从数据库中删除表的命令是( A )。

55. 以下哪一条语句可实现增加表employee的name列的长度到25?(A )

56. 如果希望employee表原有的列name非空,应该使用以下哪条语句?( B)

57. 撤消约束的命令关键字是( A )。

58. Unique关键字表示创建的是哪一种索引?(B )

A. B树索引 B. 唯一性索引 C. 位图索引 D. 非唯一性索引

1、 某Oracle数据库服务器当前有2人联机,由于遇到紧急情况,需要马上关闭,但又想避

4、假定一张销售表年数据总量达到10GB,设计一个分区表对该表数据进行管理,将一、二、三、四季度数据分别存放到不同表分区段中,这样的分区类型是___区间分区_________________。

11、两个表经常进行连接操作,为了提高连接的效率,可以对这两个表建立______ 聚簇____结构。

1、简述Oracle数据库启动的三个阶段。

答:1启动到nomount状态,这个阶段数据库读取spfile/pfile文件中的参数,启动数据库实例。

我要回帖

更多关于 for语句是啥时候用的 的文章

 

随机推荐