" systestfiles"文件夹的ipad建立文件夹

当前位置: >
如何实现这种&定时&任务?
我想在本地的oracle上自动运行查询去下载server上每天产生的一些数据.&&但是1.我本地机是每天不定时断网的(有时候能连上server,有时候没有网络可用),2.有时候有好几天可能不开机。但是开机后想把中间没有下载过的数据再下到本地的oracle中& &假如我的测试语句如下,并且已经在能连网时测试成功。需要怎么做才能实现:在本地oracle不定时开机(联网)的情况下,只要一开机就能自动判断有哪几天的job没有执行(成功),把缺少的补回来。并且不下载重复数据SQL&& &create& &table& &test1(.....);&&SQL&& &create& &or& &replace& &procedure& &proc_test& &as& & & && & begin& & & && & insert& &into& &test1 select to_char(sysdate,'yyyymmdd') as&&today,.....from&&a@dblink where.....;& & & && && & & && & / SQL& declare job1&&& &&&begin&&& &&&dbms_job.submit(job1,'proc_',sysdate,'sysdate+10/24');& &&& & &&&&&& &&&/物化视图物化视图需要在server端有权限吧?我只对本地机有所有权限,对服务器端的权限如下CREATE SESSIONALTER SESSIONUNLIMITED TABLESPACECREATE TABLESELECT ANY TABLECREATE CLUSTERCREATE SYNONYMCREATE PUBLIC SYNONYMCREATE VIEWCREATE ANY VIEWCREATE SEQUENCECREATE DATABASE LINKCREATE PROCEDUREEXECUTE ANY PROCEDURECREATE TRIGGERCREATE TYPECREATE OPERATORCREATE INDEXTYPESELECT ANY DICTIONARY物化视图也够呛。除非你在表里加一个标志位,标识出哪些已经同步,哪些没有同步。然后做一个系统级触发器,在开机的时候自动触发,进行同步。当然,定时的任务还是要保留的还是物化视图好。在服务端必须建立 MATERIALIZED VIEW LOG , 如果没有权限就让DBA建。自己写一段循环调用DBMS_MVIEW.REFRESH就可以在你需要的时候刷新数据。
最新发布文章C++中如何创建文件和目录_百度知道
C++中如何创建文件和目录
通过system();函数调用DOS命令来创建文件夹和删除文件、文件夹。创建文件可以用其文件操作实现。system(&md c:\\mydir&);//创建一个文件夹system(&rd c:\\mydir&);//删除一个文件夹system(&c:\\test\\myfile.dat&);//删除一个文件。文件的打开和读写操作参照上面的
其他类似问题
8人觉得有用
为您推荐:
如果是VC的话,文件操作如下:
文件打开:
char* pszFileName = &c:\\test\\myfile.dat&;
CFileException fileE
if ( !myFile.Open( pszFileName, CFile::modeCreate |
CFile::modeReadWrite, &fileException ) )
TRACE( &Can't open file %s, error = %u\n&,
pszFileName, fileException.m_cause );
文件读写:
szBuffer[256];
nActual = 0;
myFile.Write( szBuffer, sizeof( szBuffer ) );
myFile.Seek( 0, CFile::begin );
nActual = myFile.Read( szBuffer, sizeof( szBuffer ) );
myFile.Close();
文件定位:
long offset = 1000;
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问谁有&linux指令大全&的下载地址???
请问谁有&linux指令大全&的下载地址???
昵称: goldcool &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:
昵称: syyuning &时间:C语言,在WINDOWS下取文件创建时间的问题?_百度知道
C语言,在WINDOWS下取文件创建时间的问题?
使用_findfirst函数或_findnext函数检索磁盘上的文件能获取相关信息,其中就包含创建日期。long _findfirst(const char*, _finddata_t *);long _findnext(const long, _finddata_t *);findfirst函数用一个文件名来启动一次检索,同时把能找到的第一个文件的数据存入_finddata_t所指向的结构体,然后返回本次检索的句柄,若失败返回-1Lfindnext函数则接受一个检索句柄,寻找下一个有效的相关文件,把数据存入_finddata_t所指向的结构体,然后返回0,若失败,则返回非零。
其他类似问题
为您推荐:
提问者采纳
n&)) == NULL)
fprintf(n&
#include &Time file last opened.st_dev): %c\Size of file in bytes, &quot.\* display the information returned */
/.st_mode & S_IWRITE)
printf(&quot.h&gt.\Handle refers to an ordinary file.h&
/n&quot.\n&quot给你参考一下下面的代码#include &* get information about the file */
printf(&quot.st_mode & S_IFREG)
printf(&D+
printf(&n&quot.&#92.h&gt.st_size);
if (statbuf.\TEST;Cannot open output file, &
fclose(stream),n&User has write permission on file.$$$&
int main(void)
FILE *stream: %ld\
stat(FILENAME;A'), ctime(&);;
return(1););
if ((stream = fopen(FILENAME.st_mode & S_IREAD)
printf(&n&quot, &statbuf);w+&User has rea
if ();.st_mode & S_IFCHR)
#define FILENAME &quot: %s\n&sys\
#include &lt.st_ctime));* open a file for update *&#47, &#39
/*第二段代码如下*/#include&stdio.h&#include&time.h&#include &sys/stat.h&main(){ time_
struct tm *
stat(&e:\\1.txt&,&st);//必须使用两个‘\\’ tt=st.st_ tst=localtime(&tt); printf(&%d\n&,tt//365); printf(&%d\n&,tst-&tm_mon+1);}
提问者评价
谢谢,我已经知道问题大致在哪了
来自团队:
c语言的相关知识
其他1条回答
不知道你用什么编译器第一个的 struct tm *t ,大部分情况下C 的所有变量定义需要语句前面,不然会报错(有些编译器可能没有这个规定)。除这之外程序好象是没有问题
第一段代码是我找来的,我也不清楚怎么回事;第二段代码错误出在stat(&G:\1.TXT&,&st);中,应该使用两个'\\'来表示路径,神奇啊。。。。现在第二段代码已经编译成功了
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁SQLSERVER将一个文件组的数据移动到另一个文件组
有经验的大侠可以直接忽视这篇文章~
这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验
今天求助了QQ群里的菠萝大侠,终于知道怎麽做了
我自己会把不明白的问题一定会问到底的,之前在论坛问过这个弱弱的问题,但是由于太弱了,人家随便答复了一下
然后斑竹就标记为答案了~
移动数据:
1、有表分区
2、没有表分区
我这里只讨论没有表分区的情况,表分区的情况还不是很明白
比如:你有三个文件组,其中一个是主文件组
测试脚本:
1 USE master
5 IF EXISTS(SELECT * FROM sys.[databases] WHERE [database_id]=DB_ID('Test'))
6 DROP DATABASE [Test]
8 --1.创建数据库
9 CREATE DATABASE [Test]
12 USE [Test]
16 --2.创建文件组
17 ALTER DATABASE [Test]
18 ADD FILEGROUP [FG_Test_Id_01]
20 ALTER DATABASE [Test]
21 ADD FILEGROUP [FG_Test_Id_02]
25 --3.创建文件
26 ALTER DATABASE [Test]
27 ADD FILE
28 (NAME = N'FG_TestUnique_Id_01_data',FILENAME = N'E:\FG_TestUnique_Id_01_data.ndf',SIZE = 1MB, FILEGROWTH = 1MB )
29 TO FILEGROUP [FG_Test_Id_01];
31 ALTER DATABASE [Test]
32 ADD FILE
33 (NAME = N'FG_TestUnique_Id_02_data',FILENAME = N'E:\FG_TestUnique_Id_02_data.ndf',SIZE = 1MB, FILEGROWTH = 1MB )
34 TO FILEGROUP [FG_Test_Id_02];
37 --4.创建表,这个表的数据存放在[FG_Test_Id_01] 文件组上
38 CREATE TABLE aa(id INT ,cname NVARCHAR(4000)) ON [FG_Test_Id_01]
42 --5.插入数据
43 INSERT INTO [dbo].[aa]
44 SELECT 1,REPLICATE('s',3000)
48 --6.查询数据
49 SELECT * FROM [dbo].[aa]
52 --7.创建聚集索引在[FG_Test_Id_02]文件组上
53 CREATE CLUSTERED INDEX PK_ID ON [dbo].[aa]([id]) WITH(ONLINE=ON) ON [FG_Test_Id_02]
57 --8.我们查看一下文件组的逻辑文件名
58 EXEC [sys].[sp_helpdb] @dbname = TEST -- sysname
62 --9.收缩一下FG_Test_Id_01文件组文件
63 DBCC SHRINKFILE(FG_TestUnique_Id_01_data,1)
66 --10.你可以选择drop掉聚集索引,也可以选择不drop掉聚集索引
67 DROP INDEX PK_ID ON [dbo].[aa]
69 USE master
71 DROP DATABASE [Test]
上面的脚本虽然简单,但是隐藏了非常多的知识点
知识点1:创建了两个文件组,现在数据库有三个文件组,包括主文件组,当你不指定任何参数的时候默认创建出来的数据文件是1MB大小
知识点2:插入数据,因为表是创建在[FG_Test_Id_01]文件组上,所以数据都会放在E:\FG_TestUnique_Id_01_data.ndf
1 CREATE TABLE aa(id INT ,cname NVARCHAR(4000)) ON [FG_Test_Id_01]
知识点3:创建聚集索引,其实这句话里面包含了几个动作,在E:\FG_TestUnique_Id_02_data.ndf文件上分配页面,并把aa表的数据
放进去E:\FG_TestUnique_Id_02_data.ndf文件,其实这里聚集索引成为了移动数据的中介,我在
文章写到:聚集索引叶子节点就是数据,我们把聚集索引(一定要是聚集索引,非聚集索引不是)
建立在E:\FG_TestUnique_Id_02_data.ndf文件上实际上就是把数据页面和聚集索引页面移动到E:\FG_TestUnique_Id_02_data.ndf文件里
因为SQLSERVER是没有 ALTER TABLE aa(id INT ,cname NVARCHAR(4000)) ON [FG_Test_Id_01] 这种语法上
就是说你一旦建表并且表中已经有数据之后,如果你要移动表数据,只能通过聚集索引这个中介来移动表数据
1 CREATE CLUSTERED INDEX PK_ID ON [dbo].[aa]([id]) WITH(ONLINE=ON) ON [FG_Test_Id_02]
从下图可以看出数据都已经移动到E:\FG_TestUnique_Id_02_data.ndf文件上
知识点4:为什麽要加上WITH(ONLINE=ON)??如果你的应用是不能停机的话,加上WITH(ONLINE=ON)就可以在线的创建索引
详情参考:
1 CREATE CLUSTERED INDEX PK_ID ON [dbo].[aa]([id]) WITH(ONLINE=ON) ON [FG_Test_Id_02]
知识点5:为什麽要收缩[FG_Test_Id_01]文件组文件E:\FG_TestUnique_Id_01_data.ndf
因为数据已经移动到E:\FG_TestUnique_Id_02_data.ndf文件上了,既然已经移到E:\FG_TestUnique_Id_02_data.ndf文件上
为什麽E:\FG_TestUnique_Id_01_data.ndf文件还显示5MB大小??
大家可以看一下这篇文章:
我delete了数据,SQLSERVER却没有完全释放空间,其实这里移动数据到别的文件/文件组相当于delete了数据了
但是SQLSERVER并没有释放这些空间,所以我需要收缩一下FG_Test_Id_01文件组文件
1 --9.收缩一下FG_Test_Id_01文件组文件
2 DBCC SHRINKFILE(FG_TestUnique_Id_01_data,1)
知识点6:DBCC SHRINKFILE(FG_TestUnique_Id_01_data,1)
SHRINKFILE的单位是MB,上面的语句就是收缩到1MB大小,其实这里如果E:\FG_TestUnique_Id_01_data.ndf文件有数据的话
并且需要占用2MB大小的空间,那么您使用DBCC SHRINKFILE(FG_TestUnique_Id_01_data,1)这句话只能收缩到2MB大小
并不会收缩到1MB大小的,因为这些数据需要占用空间,你怎麽收缩都收缩不了的,不信的话您们可以测试一下
相关文章:
虽然移动数据的动作比较简单,但是知识点挺多的,有些人只知道怎麽做,不知道为什么我觉得这样不好
寻根问底是我的特性o(&_&)o 哈哈
注意:移动数据只能一张表一张表的移动,如果表里预先已经有聚集索引,需要先drop掉
移动之前查一下表中的数据在哪个文件组中
1 USE [Northwind]
3 EXEC [sys].[sp_help] @objname = N'[dbo].[Categories]' -- nvarchar(776)
如有不对的地方,欢迎大家拍砖o(&_&)o
有表分区的方法
大概有三种
先创建新的数据文件,文件组,分区方案,分区函数
例如创建三个新的数据文件和文件组,分区方案和分区函数对于这三个新的数据文件和文件组
旧表:无论已经分区或者还没有分区都适用下面三种方法:
方法一:建立中间表(新表),中间表建立在新的分区方案上,然后用insert into 新表 select * from 旧表的方法,插入完毕之后
drop掉旧表
方法二:建立中间表,中间表建立在新的分区方案上,然后用switch to,因为新分区方案有三个分区
那么,switch to只能够将表的全部数据切换到其中一个分区
ALTER TABLE 旧表 SWITCH PARTITION 1 TO 新表 PARTITION 1
ALTER TABLE 旧表 SWITCH PARTITION 1 TO 新表 PARTITION 2
ALTER TABLE 旧表 SWITCH PARTITION 1 TO 新表 PARTITION 3
上面的三条语句就会把旧表的所有数据移动到新表的某个分区,至于移动到哪个分区由最后那个数字来指定PARTITION 要移动到的分区的数字
完成后drop掉旧表
方法三:drop掉旧表的聚集索引(如果有),然后在旧表上创建一个聚集索引,创建聚集索引的时候指定新的分区方案
这样就会把表数据移动到新分区方案,即新的数据文件里,这个方法跟没有表分区的数据移动是一样的
参考文章:
删除文件和删除文件组
--Transact-SQL
ALTER DATABASE AdventureWorks2012
REMOVE FILE test1dat3 ;
ALTER DATABASE AdventureWorks2012
REMOVE FILE test1dat4 ;
--Transact-SQL
ALTER DATABASE AdventureWorks2012
REMOVE FILEGROUP Test1FG1 ;
阅读(...) 评论()

我要回帖

更多关于 如何建立共享文件夹 的文章

 

随机推荐