⑴ 求oracle一个sql语句写法
递归问题是不能用一句SQL语句解决的,建议写个存储过程,判断C字段是否为X,是则结束,否则重新调用自己。
⑵ 求写一段向oracle数据库插入新数据的sql语句
你说的“库名”是指oracle里的数据库名称,还是指表所在的用户?
登陆你的oracle用户:
ID希望自增长,那么建立一个sequence序列即可。
先建立序列:
create sequence seq_name -------创建序列名字为 seq_name,自己定义
minvalue 1 ----- 最小值为 1,可自定义
maxvalue 99999 ------- 最大值为 99999,可自定义
start with 1 ------ 开始值 1,可自定义
increment by 1 -----每次增长值 1,可自定义
cache 20; ----缓存大小 20,可自定义
这里用表名tablename 代替你说的DB,你替换就可以
插入:
insert into tablename(id, user, pass, sex, sn) values(seq_name.nextval,'user','pass','sex','sn' );
commit;
修改:
update tablename set sex='男' where user=‘张三';
commit;
-------set后面要更新成什么,和where后面的条件根据需要自己写。最基本的SQL了。
删除:
delete from tablename where user='张三';
commit;
-----------具体条件自己写。
我觉得你还是看下最基本的SQL教材吧
⑶ 给oracle数据库中的某个表,增加一个新的栏位 用sql语句怎么写
是加个字段吗?
alter table 表名 add 新字段名 类型+长度
如:
alter table test add pid varchar2(10);
⑷ Oracle中自增列在插入什么怎样写SQL语句
自增列在Insert时,不用管。
在数据添加之后,会自行计算并填充。
⑸ 怎么在Oracle中写执行sql的sql语句
可以使用 execute immediate
--FYI
--execute immediate不支持多行返回,如果需要可新建临时表
declare
v_source_sql varchar2(1000);
v_union_sql varchar2(1000);
begin
select column_name into v_source_sql from table_name ;--get source sql
v_union_sql='select * from tablename2,('||v_source_sql ||') h where ......';--sql str
-- 之前先创建好所需字段的temp_table
execute immediate('insert into temp_table '||v_union_sql );
--在临时表中就是你所需要的数据。
exception ......
--如果只是需要返回单行数据,则可将execute immediate嵌入在sql中使用
--execute immediate str into parameter1 ,parmeter2...--返回参数
where column=:parameter....条件参数
--
-我说的很仔细吧:) 今天心情好
end;
⑹ 这个Oracle的sql语句怎么写
select姓名,casewhen体重>150then'偏胖'else'正常'endfrom表名
⑺ oracle的创建存储过程SQL语句怎么写啊
你们老板说还要创建存储过程是让你准备好,不会就去学,会的就准备下!不是说让你在这上面创建存储过程
⑻ oracle中的sqlplus工具,写的sql语句如何添加到xxx.sql文本中!
可以用spool,spool on 路径\文件名 这样你的所有操作记录都会保存到【路径\文件名】里面,但是类似【已删除4行。】也会保存到里面,整理一下就可以了。
---
以上,希望对你有所帮助。
⑼ 关于oracle的这个SQL语句怎么写
你这样设计表只有写程序来完成了,你的tb1设计得不好,好像节省了点存储空间,实际上给编程带来许多麻烦。
如果是别人做好的系统,我们不可能去修改tb1的设计,那么要做你那样的功能,只有写程序来实现了:
对tb1进行foreach,把每行的CARD_IDS取出来,转换为SQL语句的in条件,再对tb2进行sum查询
如果可能,我建议你修改tb1的设计,可以修改成下面这样,修改以后非常简单的语句实现你的目的“select CARD_GROUP_NAME,sum(fee) from tb1,tb2 where tb1.CARD_IDS = tb2.CARD_ID group by 1 ”:
CARD_GROUP_NAME CARD_IDS
-------------- ---------------
测试 9
测试 35
测试 22
测试 27
修改的查询 9
修改的查询 48
修改的查询 27
⑽ ORACLE里面动态的添加字段,如果存在就不添加,如果不存在就添加。sql语句怎么写
declare
p_table_namevarchar2(30);
p_column_namevarchar2(30);
p_data_typevarchar2(30);
p_cntnumber;
p_sqlvarchar2(4000);
begin
p_table_name:='';
p_column_name:='';
selectcount(1)intop_cntfromuser_tab_colswherea.table_name=p_table_nameanda.column_name=p_column_name;
ifp_cnt=0then
p_sql:='altertable'||p_table_name||'add'||p_column_name||''||p_data_type;
executeimmediatep_sql;
endif;
end;
没测试,不过基本应该可以