create table test(phone int check(length(phone)=11));
成都创新互联-成都网站建设公司,专注网站设计制作、做网站、网站营销推广,空间域名,虚拟空间,网站托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联。
如果表已创建:
首先要删除不符合check约束条件的记录,然后
alter table test
add constraint check_p check(length(phone)=11);
看 oracle监听是否启动 在CMD下运行如下命令就可以
lsnrctl status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=spcc)(PORT=1525)))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
LSNRCTL start listener1
启动tnslsnr:请稍候...
这表示没有启动。。
方法2:
如果是LINUX系统可以通过如下命令看进程在不在
ps -ef|grep lsn
看 oracle监听是否启动 在CMD下运行如下命令就可以
lsnrctl status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=spcc)(PORT=1525)))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
LSNRCTL start listener1
启动tnslsnr:请稍候...
这表示没有启动。。
方法2:
如果是LINUX系统可以通过如下命令看进程在不在
ps -ef|grep lsn
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
1.$ su - oracle
2.$ sqlplus / nolog
3.sql conn / as sysdba
4.sql startup (一般不需要加参数,只要设置好环境变量)
5.sql quit (退出sql模式)
6.$ lsnrctl start (启动监听器)
关闭oracle
1.$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
2.$ sqlplus /nolog
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
1.$ su - oracle
2.$ sqlplus / nolog
3.sql conn / as sysdba
4.sql startup (一般不需要加参数,只要设置好环境变量)
5.sql quit (退出sql模式)
6.$ lsnrctl start (启动监听器)
关闭oracle
1.$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
2.$ sqlplus /nolog
3.sqlshutdown 其参数 :shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
2经常遇到的问题:
1)权限问题,解决方法,切换到oracle用户;
2)没有关闭监听器 ,解决方法:关闭监听器
3)有oracle实例没有关闭,解决办法:关闭oracle实例
4)环境变量设置不全,解决办法:修改环境变量
1、首先,在Windows10系统的电脑上找到运行的应用,并点击打开它。
2、然后,再打开的运行的对话框中输入cmd,并点击确定按钮。
3、接着,再打开的黑色背景的窗口中输入sqlplus /nolog,并按enter回车键。
4、最后,再按enter回车键后,如果没有报错,并且出现oracle版本号,就说明oracle在Linux下安装成功了;反之,就没有安装成功。
提示主键冲突。检查办法 ,假设表table1 ,主键 a,b
插入集合为表table2
检查办法是看tabl2中a,b列是否有重复冲突情况。
select count(*),a,b from table2 group by a,b having count(*)1
如何有返回值说明插入时,a,b会主键冲突。没有返回值可以正常插入。你检查存储过程中的查询结果。看是否存在冲突情况
加入一个检查约束
alter table T_TEST
add constraint CK_T_TEST check (c_sex ='男生');
加入设置默认值
alter table T_TEST modify (c_sex VARCHAR2(10) default '男生');
有这些约束:
主键:
Alter table 表名
Add constraint PK_列名 primary key(列名)
唯一:
Alter table 表名
Add constraint UQ_列名 unique(列名)
默认:
Alter table 表名
Add constraint DF_列名 default (‘默认值’) for 列名
检查:
Alter table 表名
Add constraint CK_列名 check(条件)
外键:
Alter table 表名
Add constraint FK_列名 foreign key(列名) references 表名(列名)