當前位置:首頁 » 編程語言 » sqlapplyfor

sqlapplyfor

發布時間: 2023-03-31 17:20:33

㈠ mac中workbench中怎麼用sql語句創建表格

先建資料庫mydatabase,然後再燃簡創建表,不然會出錯,右鍵點擊Tables 然後點擊數耐Create new tables ,填寫表名,以及表列的信息,之後點擊 apply ,一張表就建完了

薯段春PK: primary key (column is part of a pk)主鍵

NN: not null (column is nullable)是否為空

-UQ: unique (column is part of a unique key) 外鍵

AI: auto increment (the column is auto incremented when rows are inserted) 自動增加

BIN: binary (if dt is a blob or similar, this indicates that is binary data, rather than text) 二進制

UN: unsigned (for integer types, see docs: 「10.2. Numeric Types」)

- ZF: zero fill (rather a display related flag, see docs: 「10.2. Numeric Types」)

出現如下頁面

㈡ mybatis 數組array參數報錯org.apache.ibatis.exceptions.PersistenceException: ### Error querying dat

mybatis 數組array參數報錯,是設置錯誤造成的,解決方法如下:

1、首先使用數組前首先需要創建一個數組出來,並且初始化,對數組賦值。創建一個mybooks的數辯春組,對數組進行賦值。

㈢ SQL SERVER中縱向的數據橫向顯示出來

create TABLE Table1 (Name varchar(50),Subject varchar(50))
INSERT INTO TABLE1 VALUES('A','a1')
INSERT INTO TABLE1 VALUES('A','a2')
INSERT INTO TABLE1 VALUES('A','a3')
INSERT INTO TABLE1 VALUES('A','a4')
INSERT INTO TABLE1 VALUES('A','a5')
INSERT INTO TABLE1 VALUES('A','a6')
INSERT INTO TABLE1 VALUES('A','a7')
INSERT INTO TABLE1 VALUES('B','b1')
INSERT INTO TABLE1 VALUES('B','b2')
INSERT INTO TABLE1 VALUES('B','b3')
INSERT INTO TABLE1 VALUES('B','b4')
INSERT INTO TABLE1 VALUES('B','b5')
INSERT INTO TABLE1 VALUES('B','b11')
INSERT INTO TABLE1 VALUES('B','b23')
INSERT INTO TABLE1 VALUES('B','b34')
INSERT INTO TABLE1 VALUES('B','b8')
INSERT INTO TABLE1 VALUES('B','b9')
INSERT INTO TABLE1 VALUES('B','b15')

就生成了表單TABLE1,如果把公司名稱A,B橫向輸出,Subject的話,比較簡單的是把Subject顯示在1列,裡面元素用","隔開,如果分列顯示,就要找到Subject最長的列,否則影響效率;
因為不知道你的參數最多是多少,所以就在1列中顯示.
可以寫一個函數F_str

create function F_str(@name varchar)
returns nvarchar(100)
as
begin
declare @S nvarchar(100)
select @S=isnull(@S+',','')+Subject from table1 where Name=@name
return @S
end

生成函數後在調用即可:
select distinct Name,Subject=dbo.F_str(Name) from Table1
自己用的話注意每次實驗刪除函數,不然創建2次重名的函數是不可以的

因為我的Name是動態讀取的,不管多少公司,都是沒問題的,唯一的不同就是
產品顯示出來是在一列當中,而不是分列顯示,不知道滿足你的需求嗎.

Name Subject
A a1,a2,a3.....
B b1,b2,b3.....
C c1,c2,c3.....
... .....

這種格式的,Subject是不分列的,在一列.
要是需要分列的話,實現比較麻煩,需要的話,和我說.

declare @c int,@sql varchar(5000)
set @c=(select max(a) from (select count(*)a from table1 group by name)b)

declare @i int
set @i=1
select x=@c,y='列'+cast(@c as varchar) into #temp
while @i<@c
begin
insert into #temp values(@i,'列'+cast(@i as varchar))
set @i=@i+1
end

select y,name,subject into #temp2 from #temp t left join (select ROW_NUMBER() over(PARTITION BY name order by name) as id,name,subject from table1 ) tb on tb.id=t.x

set @sql = 'select name'
select @sql = @sql + ' , max(case y when ''' + y + ''' then subject else null end )[' + y + ']'
from (select distinct y from #temp2 ) as a
set @sql = @sql + ' from #temp2 group by name'
exec(@sql)

drop table #temp
drop table #temp2
SQL2005可以用,2000估計不能用,2000函數不全

㈣ SQL 怎麼將一列中的數據按一個分隔符分成多列顯示

withHrmResource(id,lastname)as(
select拍搭167,'段秋月'unionall
select譽李170,'楊子軍'
)
,formtable_main_78(Requestid,WTCW,XMCY)as(
select722,'xxxxx公司慶賀遲','167,170'
)

selecta.*,stuff(c.[col],1,1,'')[項目名稱]
fromformtable_main_78a
crossapply
(select','+lastnamefromHrmResourceb
wherecharindex(','+convert(varchar,b.id)+',',','+a.XMCY+',')>0
forxmlpath(''))c([col])

結果:

㈤ 安裝PSU後一定要運行catbundle.sql psu apply腳本

首先分析一下catbundle.sql腳本,其中有段這樣的話:
catbundle.sql will look in $ORACLE_HOME/rdbms/admin for an input XML
file named bundledata_.xml (i.e. bundledata_CPU.xml)
for information about which patches in the bundle contain which SQL
files.

即根據$ORACLE_HOME/rdbms/admin/bundledata_PSU.xml文件中的內容來決定該PSU中需要執行哪些SQL文件,bundledata_PSU.xml文件中的部分內容:

?/rdbms/admin/prvtjob.plb
?/rdbms/admin/dbmsaqds.plb
?/rdbms/admin/prvtaqds.plb
?/rdbms/admin/prvtlmd.plb
?/rdbms/admin/prvtlmc.plb
?/rdbms/admin/prvtbpp.plb
?/rdbms/admin/prvtlsby.plb
?/rdbms/admin/dbmssum.sql
?/rdbms/admin/prvtsum.plb
?/rdbms/admin/prvtsms.plb
?/rdbms/admin/prvtdefr.plb
?/rdbms/admin/prvtbstr.plb
?/rdbms/admin/prvtbcap.plb

?/rdbms/admin/initqsma.sql

應該是根據資料庫安裝不同的組件需要執行不同的SQL,繼續分析catbundle.sql腳本,文件的最後有如下幾行:
COLUMN script_file NEW_VALUE sf NOPRINT;
SELECT :scriptFile AS script_file FROM al;
@&sf
即script_file為需要執行的腳本,將catbundle.sql拷貝一份,最後幾行內容修改為:
BEGIN
DBMS_OUTPUT.PUT_LINE('script. file: ' || :scriptFile);
END;
看看打出來需要執行的腳本叫什麼。
SQL>@catbundle_test.sql psu applay
輸出script. file: /u01/app/oracle/proct/10.2.0/db_1/rdbms/admin/catbundle_PSU_OTEST_APPLY.sql

原來執行的SQL文件是catbundle_PSU_OTEST_APPLY.sql,查看該文件內容,如下內容和bundledata_PSU.xml文件中的內容相符合:
PROMPT Processing Oracle Database Packages and Types...
ALTER SESSION SET current_schema = sys;
@?/rdbms/admin/prvtjob.plb
@?/rdbms/admin/dbmsaqds.plb
@?/rdbms/admin/prvtaqds.plb
@?/rdbms/admin/prvtlmd.plb
@?/rdbms/admin/prvtlmc.plb
@?/rdbms/admin/prvtbpp.plb
@?/rdbms/admin/prvtlsby.plb
@?/rdbms/admin/dbmssum.sql
@?/rdbms/admin/prvtsum.plb
@?/rdbms/admin/prvtsms.plb
@?/rdbms/admin/prvtdefr.plb
@?/rdbms/admin/prvtbstr.plb
@?/rdbms/admin/prvtbcap.plb
@?/rdbms/admin/prvtaqiu.plb
PROMPT Processing Oracle java Supplied Packages...
ALTER SESSION SET current_schema = sys;
@?/rdbms/admin/initqsma.sql
@?/rdbms/admin/initcdc.sql

即根據資料庫安裝的組件,需要執行上述SQL腳本,這里只有CATPROC和CATJAVA組件,之後執行完後往registry$history表中插入記錄:
PROMPT Updating registry...
INSERT INTO registry$history
(action_time, action,
namespace, version, id,
bundle_series, comments)
VALUES
(SYSTIMESTAMP, 'APPLY',
SYS_CONTEXT('REGISTRY$CTX','NAMESPACE'),
'10.2.0.2',
2,
'PSU',
'PSU 10.2.0.4.2');
COMMIT;

這里就重點分析那些plb文件在使用custome方式建庫的時候是否調用了,為此寫了一個SHELL腳本:
mygrep()
{
fn=$1 #保存傳入的文件名
shift
msg=$* #保存傳入的消息
fnt=`echo $fn | cut -d . -f 1` #由於SQL文件中有的是寫成@@dbmssum模式,有的是寫成@@prvtjob.plb模式,
ff=`grep "@@$fn" *.sql || grep "@@$fnt" *.sql` #即帶擴展名和不帶擴展名,因此可能需要截斷一下
if [ "$ff" != "" ]; then #對於catjava.sql中的調用是不帶@@的,所以可以進入到下面循環的是catproc.sql的
fn1=`echo $ff | awk -F:@@ '{print $1}'`
if [ "$fn1" = "catproc.sql" ]; then
if [ "$msg" = "" ]; then
echo "$fn found in $fn1"
else
echo "$msg$fn found in $fn1"
fi
else
msg="$msg$fn found in $fn1 \t"
mygrep $fn1 $msg
fi
else
grep -q $fn catjava.sql
if [ "$?" = "0" ]; then
echo "$fn found in catjava.sql"
else
echo "$fn not found"
fi
fi
}

for f in `cat << EOF #需要查詢的SQL文件名
prvtjob.plb
dbmsaqds.plb
prvtaqds.plb
prvtlmd.plb
prvtlmc.plb
prvtbpp.plb
prvtlsby.plb
prvtsum.plb
prvtsms.plb
dbmssum.sql
prvtdefr.plb
prvtbstr.plb
prvtbcap.plb
prvtaqiu.plb
initqsma.sql
initcdc.sql
EOF`

do
msg=""
mygrep $f $msg
done

執行輸出如下:
prvtjob.plb found in catproc.sql
dbmsaqds.plb found in catqueue.sql catqueue.sql found in catproc.sql
prvtaqds.plb found in catqueue.sql catqueue.sql found in catproc.sql
prvtlmd.plb found in catproc.sql
prvtlmc.plb found in catproc.sql
prvtbpp.plb found in catdpb.sql catdpb.sql found in catproc.sql
prvtlsby.plb found in catproc.sql
prvtsum.plb found in catproc.sql
prvtsms.plb found in catproc.sql
dbmssum.sql found in catproc.sql
prvtdefr.plb found in catreps.sql catreps.sql found in catrep.sql catrep.sql found in catproc.sql
prvtbstr.plb found in catpstr.sql catpstr.sql found in catproc.sql
prvtbcap.plb found in catpstr.sql catpstr.sql found in catproc.sql
prvtaqiu.plb found in catqueue.sql catqueue.sql found in catproc.sql
initqsma.sql found in catjava.sql
initcdc.sql found in catjava.sql

雖然存在遞歸調用,但最終都是在catproc.sql和catjava.sql腳本里調用了,熟悉custome方式建庫的應該都知道這兩個腳本在建庫階段必須調用的,
因此不需要運行catbundle.sql psu apply啦,神馬都是浮雲啦。

另外對於readme里的view_recompile_jan2008cpu.sql也是不需要執行的,腳本中的一小段:
CURSOR alter1(objectno number) IS
SELECT o.obj#,
'ALTER VIEW' || ' "' || u.name || '"."' || o.name || '" '
|| 'COMPILE '
FROM obj$ o, user$ u WHERE o.type#=4 AND
u.user# = o.owner# AND o.obj# in (select unique d_obj# from access$ where types=9)
AND o.obj# > objectno order by obj#;
該腳本只是把所有符合條件的視圖COMPILE了一遍,這個在建庫的過程中都執行了

其實在readme里也說了,需要run腳本的只有以下幾種情況:
?Using DBCA (Database Configuration Assistant) to select a sample database (General, Data Warehouse, Transaction Processing)
?Using a script. that was created by DBCA that creates a database from a sample database
?Cloning a database that was created by either of the two preceding methods, and if Section 2.3.3.1, "Loading Modified .sql Files into the Database" and Section 2.3.3.2, "Recompiling Views in the Database" were not executed after PSU 10.2.0.4.2 was applied

對於view_recompile_jan2008cpu.sql則是:
Upgraded databases require that you perform. the steps in Section 2.3.3.2, "Recompiling Views in the Database" if these steps have not previously been performed; otherwise, no post-installation steps need to be performed.
即如果升級資料庫前沒有run過則需要跑一遍,如果以前曾經run過就不需要了,僅需一次而已。

當然如果你的庫是在安裝好PSU前就已經建立的了,則catbundle.sql psu apply必須run,view_recompile_jan2008cpu.sql則曾經run過就不需要了

另外有metalink賬戶的可以看下Introction To Oracle Database catbundle.sql [ID 605795.1]這篇文章,其中有段:
Starting with Database 11.2.0.2.0, a mmy catbundle.sql is run at database upgrade and creation time, which creates a dba_registry_history entry with bundle series "PSU" and ID = "0". Reports that query on this view for the PSU series returns a row for every upgraded and newly created database.
即從11.2.0.2.0開始,建立一個新庫或者升級時會運行一個mmy catbundle.sql,這樣registry$history表中就有記錄了,也不會引起困惑了。

編譯錯誤:PL/SQL: ORA-00942: 表或視圖不存在 行:41 文本:INSERT into TEMPPROCESS SELECT CODE,ITEM

這問題,有意思啊。你最好給我加分
INSERT into TEMPPROCESS
這張表還沒有,所以過程編譯不用過的啦,因為編譯不會執行create 命令的。!!!!
可以做如下修改
方案一
1.create 命令前面加上drop table 命令
2.創建procere 之前運行一次 create table TEMPPROCESS
方案二
1.execute immediate 'CREATE TABLE TEMPPROCESS 命令改成delete from TEMPPROCESS
2.創建procere 之前運行一次 create table TEMPPROCESS

㈦ 我想將下面的查詢結果保存到一個資料庫表裡面,怎麼做,求高手指點啊~

select *
into [DataTable] --[DataTable]為你想要儲存數據的表名稿吵鄭。直接插入就可以了,自動碰戚創建這個表的
from (select distinct [SellID] FROM Query) A OUTER
APPLY(
SELECT [ID]=STUFF(REPLACE(REPLACE(
(
SELECT [BookID] FROM Query N
where SellID=A.SellID
FOR XML AUTO
),'<N BookID="','鍵頌,'),'"/>',''),1,1,'')
)N
ORDER by [SellID]

㈧ 請教SQL觸發器插入時判斷是否記錄已存在的問題

你是執行普通的
INSERT INTO reqdet VALUES (...);
一次插入一行?

還是執行
INSERT INTO reqdet SELECT ... FROM ...
一次插入多行?

如果是一次插入一行的。

/*在此請問如何判斷如果衫慧drawapplydet表中此姿已經存在sysno='DA'+right(@sreqno,10)+'0'或扒答 ,先刪除這些記錄 再執行下方的插入記錄呢?*/

簡單, 根本就不需要額外去判斷。
直接

DELETE FROM drawapplydet
WHERE
sysno='DA'+right(@sreqno,10)+'0' ;

那麼滿足條件的, 自然會刪除,
沒有滿足條件的, 就刪除 0 行, 相當於沒刪除。

㈨ mysql 中使用圖形化界面 apply之後怎麼沒有出現sql語句

登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:
repair table tabTest;
進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpMyAdmin裡面也可以使用check/repair的功能。

㈩ pl/sql出現ora-01882錯誤,job不能正常編輯,報錯「未找到時區區域」!請高手速度解決!

Please make sure you have the error using the sqlplus found in the oracle_home on the server (!!! this is important !!!). IF and ONLY IF that is the case run the fix script found below directly on the server.
If you do NOT have a ORA-01882 when using the sqlplus found in the oracle_home on the server but you DO have it when connecting from a remote client then it means the remote client has not been updated to V3 or higher. In that case running the script will NOT solve the issue, you then need to update the client's DST version.
For windows clients see Note 417893.1 How To Apply The V4 DST Patches To Windows Clients or Servers
你的oracle需讓銷要打如滑攔補丁。渣胡

熱點內容
瑞納自動買哪個配置 發布:2024-11-02 20:18:45 瀏覽:559
sql復制資料庫結構 發布:2024-11-02 20:18:43 瀏覽:582
yaf編譯 發布:2024-11-02 20:06:30 瀏覽:126
小數除以大數怎麼演算法 發布:2024-11-02 19:44:59 瀏覽:810
安卓手機如何重新設置付款密碼 發布:2024-11-02 19:31:44 瀏覽:980
多巴胺3mg靜脈注射怎麼配置 發布:2024-11-02 19:25:50 瀏覽:618
源碼之城 發布:2024-11-02 19:24:43 瀏覽:513
國軍標環境存儲要求 發布:2024-11-02 19:23:04 瀏覽:107
sql多行轉多列 發布:2024-11-02 19:17:52 瀏覽:119
linuxftp文件夾許可權 發布:2024-11-02 19:17:03 瀏覽:899