可以把表2刪了,然后用create table 2 as select * from table 1 where 1=1;這樣字段和數據就全部copy過來了,不知道是不是你想要的
創(chuàng)新互聯主要從事網站設計制作、成都網站制作、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務灤南,10年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
create or replace procedure pr_uodate is
begin
Update X set col=(Select c from Y where b=a);
commit;
end pr_update;
你沒說表有哪些字段,也沒說兩表用什么來關聯,那我只能假設來回答。
假設表t1和表t2都有兩個字段,ID和name,并且兩表用ID關聯
按你的描述,就是將ID相同的用表2替換,那么代碼就是
select a.id,nvl(b.name,a.name) --nvl(x,y)語法意思是當x不為空時返回x,x為空時返回y
from table1 a
left join table2 b
on a.id=b.id
inert into another_table
as
select replace(fun(A),'要替換XX','替換成XX') new_A
from mytable;
commit;
oracle 支持函數嵌套使用。
動態(tài)SQL 實質就是執(zhí)行的SQL字符串,所以你完全可以用拼接的方式,先把 字符串 拼接出來,然后用execute immediate 'sql' 來執(zhí)行;
至于如果拼接出來 SQL,那就需要你去找規(guī)律,其實你可以對字符串做對此拼接,例如一下:str1 :='SELECT QW,QE,QR FROM Q WHERE Q=1';
str2 :='SELECT QW,COUNT(1) FROM EW,' || str1 || 'WHERE EW=QW GROUP BY QW;'
這類問題 完全屬于個別案例,因為SQL的規(guī)律只有你自己最清楚,誰都無法提供一個完整的解決方案!
1、如果是多用戶的情況下,反正沒有數據,你不如把此用戶刪除,再重新建立,建立的時候,將此用戶的臨時表空間設置成新建的臨時表空間。
2、若是只有一個用戶,那么使用以下命令,修改臨時表空間即可
Alter database default temporary tablespace temp;