begin之前好像只可以定義,不可以執(zhí)行select,再就是declare后面結(jié)束時(shí),是用分號,不是逗號。
創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,成都西云數(shù)據(jù)中心,成都西云數(shù)據(jù)中心,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
還有就是好像沒有to_date(t,'yyyy-mm-dd')
clock
to_date(m,'yyyy-mm-dd');
這種寫法,必須得分開寫
to_date(t,'yyyy-mm-dd')
clock
and
to_date(m,'yyyy-mm-dd')
存儲過程或者plsql程序段中?
plsql程序段:
declare
va number(10);
vb varchar(20);
沒說清楚,你是在怎樣的環(huán)境使用ORACLE,是SQL*Plus,還是在程序里,還是用SQL腳本,還是...
create?or?replace?procedure?p_insert
(a??varchar2(8))
as
begin
insert?into?table1?select?*?from?table2?where?"date"=a;??
commit;
end;
上邊是創(chuàng)建
執(zhí)行時(shí)
begin
p_insert('20110101')?;
end;
說一下,你這個(gè)a和表2里的類型必須都一致,都要是字符型,如果不是的話,輸入?yún)?shù)a不可以變,你可以在表2里用to_char函數(shù)將日期轉(zhuǎn)成這個(gè)格式
還有你表2里的字段叫date,這個(gè)是關(guān)鍵字,所以加了雙引號
varchar2只是一個(gè)類型,這個(gè)類型的長度需要用戶自定義。如果你單單只定義varchar2,不指定長度,那Oracle在編譯這個(gè)過程時(shí)就沒辦法給這個(gè)變量分配內(nèi)存,編譯就通不過。
1首先是ORACLE_HOME,這個(gè)環(huán)境配置與java的環(huán)境培訓(xùn)類似,如下圖按照計(jì)算機(jī)右擊-》高級系統(tǒng)設(shè)置-》高級-》環(huán)境變量-》在系統(tǒng)變量中新建:
變量名 ORACLE_HOME
變量值 E:\Oracle\product\11.2.0\dbhome_1
說明:這里的變量值是你自己安裝的Oracle數(shù)據(jù)庫的安裝路徑,路徑中你會找到project然后依次找到dbhome_1,然后將路徑復(fù)制到環(huán)境變量值中。
第二,配置TNS_ADMIN
變量名 TNS_ADMIN
變量值 E:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
說明:細(xì)心的朋友或許看出來TNS_ADMIN的變量值是在ORACLE_HOME的變量值得路徑下又找了兩級文件。這里筆者提醒大家,一定要細(xì)心,這里配置的是Oracle的監(jiān)聽,監(jiān)聽配置正確會出大事情的。
3最后,我們來說一下,你可能不認(rèn)識的一個(gè)東東 NLS_LANG。
變量名 NLS_LANG。
變量值 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
說明:這里,筆者建議大家直接復(fù)制上面的變量值。這里的意思就是統(tǒng)一編碼格式。具體的大家可以百度的到的,這里就不做詳細(xì)說明了。