Bug: runOnUiThread

admin 发表了文章 • 0 个评论 • 4 次浏览 • 2 天前 • 来自相关话题

// (Calendar) Date function - Displays dateview on Card final boolean keepRunning1 = true; Thread thread_two = new Thread(){ @Override public void run(){ while(keepRunning1){ // Make the thread wait half a second. If you want... try { Thread.sleep(500); } catch (InterruptedException e) { Toast.makeText(getActivity().getApplicationContext(), "Default Signature Fail", Toast.LENGTH_LONG).show(); e.printStackTrace(); } // here you check the value of getActivity() and break up if needed if(getActivity() == null) return; getActivity().runOnUiThread(new Runnable(){ @Override public void run(){ TextView date = (TextView) getView().findViewById(R.id.date); date.setText(DateUtils.formatDateTime(getActivity().getBaseContext(), System.currentTimeMillis(),DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR)); } }); } } };thread_two.start();
  查看全部

// (Calendar) Date function - Displays dateview on Card final boolean keepRunning1 = true; Thread thread_two = new Thread(){ @Override public void run(){ while(keepRunning1){ // Make the thread wait half a second. If you want... try { Thread.sleep(500); } catch (InterruptedException e) { Toast.makeText(getActivity().getApplicationContext(), "Default Signature Fail", Toast.LENGTH_LONG).show(); e.printStackTrace(); } // here you check the value of getActivity() and break up if needed if(getActivity() == null) return; getActivity().runOnUiThread(new Runnable(){ @Override public void run(){ TextView date = (TextView) getView().findViewById(R.id.date); date.setText(DateUtils.formatDateTime(getActivity().getBaseContext(), System.currentTimeMillis(),DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR)); } }); } } };thread_two.start();
 

git 删除未跟踪文件

admin 发表了文章 • 0 个评论 • 13 次浏览 • 2018-09-17 18:59 • 来自相关话题

# 删除 untracked files
git clean -f
 
# 连 untracked 的目录也一起删掉
git clean -fd
 
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
 
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nfgit clean -nfd




#恢复某个已修改的文件(撤销未提交的修改):
git checkout file-name

例如:git checkout src/com/android/.../xxx.java

比如修改的都是java文件,不必一个个撤销,可以使用

$ git checkout *.java

撤销所有修改


$ git checkout  查看全部

# 删除 untracked files
git clean -f
 
# 连 untracked 的目录也一起删掉
git clean -fd
 
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
 
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nfgit clean -nfd




#恢复某个已修改的文件(撤销未提交的修改):
git checkout file-name

例如:git checkout src/com/android/.../xxx.java

比如修改的都是java文件,不必一个个撤销,可以使用

$ git checkout *.java

撤销所有修改


$ git checkout 

启动/关闭oracle服务有三种方式

admin 发表了文章 • 0 个评论 • 45 次浏览 • 2018-08-16 10:49 • 来自相关话题

启动oracle服务有三种方式: 
1 从控制面板 
2 使用MS-DOS命令 
3 通过Oracle Administration Assistant for WindowsNT

-通过控制面板启动oracle服务 
1)选择开始 > 控制面板 〉管理工具 --〉服务 
2)找到你所要启动的oracle服务,单击启动

-通过MS-DOS命令启动oracle服务 
1)打开DOS窗口 
2)在窗口中输入:NET START OracleServiceName

-通过Oracle Administration Assistant for WindowsNT启动oracle服务

1)选择开始 〉程序 〉Oracle - HOME_NAME > Configuration and Migration 
Tools > Oracle Administration Assistant for Windows NT. 
2)找到并右键单击oracle sid 
3)选择启动

   

关闭oracle服务同样也有三种方式: 
1 从控制面板 
2 使用MS-DOS命令 
3 通过Oracle Administration Assistant for WindowsNT

-通过控制面板关闭oracle服务 
1)选择开始 > 控制面板 〉管理工具 --〉服务 
2)找到你所要启动的oracle服务,单击停止

-通过MS-DOS命令关闭oracle服务 
1)打开DOS窗口 
2)在窗口中输入:NET STOP OracleServiceName

-通过Oracle Administration Assistant for WindowsNT关闭oracle服务

1)选择开始 〉程序 〉Oracle - HOME_NAME > Configuration and Migration 
Tools > Oracle Administration Assistant for Windows NT. 
2)找到并右键单击oracle sid 
3)选择停止

   

快速启动Sqlplus的方式:

在开始菜单下,单击"运行"输入: 
    sqlplusw  /nolog  或者sqlplusw user/password

启动/关闭数据库 :startup/shutdown

启动/关闭侦听器:lsnrctl start /lsnrctl stop

 

批处理 启动和关闭 Oracle 11g 服务

启动和关闭数据库所使用的服务器名称和说明:
服务名称                                                    说明
OracleOracle_homeTNSListener           对应于数据库的监听程序
OracleServiceSID                                       对应于数据库的例程
OracleDBConsoleSID                                 对应于Oracle Enterprise Manager(OEM)

其中,Oracle_home表示Oracle主目录,如Oracle11g_home1;SID表示Oracle系统标识符,如OracleServiceORCL的ORCL。

注意:尽管这3个服务都是可以单独地启动和关闭的,但它们之间不像Oracle 10g 中那样没有依存关系。

比较好的启动顺序是:OracleOracle_homeTNSListener,OracleServiceSID,OracleDBConsoleSID。关闭时次序相反。

下面给出了已经排好顺序的启动和停止服务的两个批处理文件:

Start Oracle 11g Service.bat

@echo off

echo 确定要启动Oracle 11g服务吗?

pause

net start OracleOraDb11g_home1TNSListener

net start OracleServiceORCL

net start OracleDBConsoleorcl

echo 启动Oracle 11g服务完成,请确认有没有错误发生。

Pause

 

Stop Oracle 11g Service.bat

@echo off

echo 确定要停止Oracle 11g服务吗?

pause

net stop OracleDBConsoleorcl

net stop OracleServiceORCL

net stop OracleOraDb11g_home1TNSListener

echo 停止Oracle 11g服务完成,请确认有没有错误发生。

Pause 查看全部

启动oracle服务有三种方式: 
1 从控制面板 
2 使用MS-DOS命令 
3 通过Oracle Administration Assistant for WindowsNT

-通过控制面板启动oracle服务 
1)选择开始 > 控制面板 〉管理工具 --〉服务 
2)找到你所要启动的oracle服务,单击启动

-通过MS-DOS命令启动oracle服务 
1)打开DOS窗口 
2)在窗口中输入:NET START OracleServiceName

-通过Oracle Administration Assistant for WindowsNT启动oracle服务

1)选择开始 〉程序 〉Oracle - HOME_NAME > Configuration and Migration 
Tools > Oracle Administration Assistant for Windows NT. 
2)找到并右键单击oracle sid 
3)选择启动

   

关闭oracle服务同样也有三种方式: 
1 从控制面板 
2 使用MS-DOS命令 
3 通过Oracle Administration Assistant for WindowsNT

-通过控制面板关闭oracle服务 
1)选择开始 > 控制面板 〉管理工具 --〉服务 
2)找到你所要启动的oracle服务,单击停止

-通过MS-DOS命令关闭oracle服务 
1)打开DOS窗口 
2)在窗口中输入:NET STOP OracleServiceName

-通过Oracle Administration Assistant for WindowsNT关闭oracle服务

1)选择开始 〉程序 〉Oracle - HOME_NAME > Configuration and Migration 
Tools > Oracle Administration Assistant for Windows NT. 
2)找到并右键单击oracle sid 
3)选择停止

   

快速启动Sqlplus的方式:

在开始菜单下,单击"运行"输入: 
    sqlplusw  /nolog  或者sqlplusw user/password

启动/关闭数据库 :startup/shutdown

启动/关闭侦听器:lsnrctl start /lsnrctl stop

 

批处理 启动和关闭 Oracle 11g 服务

启动和关闭数据库所使用的服务器名称和说明:
服务名称                                                    说明
OracleOracle_homeTNSListener           对应于数据库的监听程序
OracleServiceSID                                       对应于数据库的例程
OracleDBConsoleSID                                 对应于Oracle Enterprise Manager(OEM)

其中,Oracle_home表示Oracle主目录,如Oracle11g_home1;SID表示Oracle系统标识符,如OracleServiceORCL的ORCL。

注意:尽管这3个服务都是可以单独地启动和关闭的,但它们之间不像Oracle 10g 中那样没有依存关系。

比较好的启动顺序是:OracleOracle_homeTNSListener,OracleServiceSID,OracleDBConsoleSID。关闭时次序相反。

下面给出了已经排好顺序的启动和停止服务的两个批处理文件:

Start Oracle 11g Service.bat

@echo off

echo 确定要启动Oracle 11g服务吗?

pause

net start OracleOraDb11g_home1TNSListener

net start OracleServiceORCL

net start OracleDBConsoleorcl

echo 启动Oracle 11g服务完成,请确认有没有错误发生。

Pause

 

Stop Oracle 11g Service.bat

@echo off

echo 确定要停止Oracle 11g服务吗?

pause

net stop OracleDBConsoleorcl

net stop OracleServiceORCL

net stop OracleOraDb11g_home1TNSListener

echo 停止Oracle 11g服务完成,请确认有没有错误发生。

Pause

DataSupport类被弃用

admin 发表了文章 • 0 个评论 • 54 次浏览 • 2018-08-12 10:08 • 来自相关话题

LitePal库---DataSupport类被弃用

用LitePalSupport类替换
在使用LitePal库进行CRUD时需要我们的类继承DataSupport类,发现这个类被弃用了,/** * DataSupport is deprecated and will be removed in the future release. * For model inheritance, use {@link LitePalSupport} instead. * For static CRUD op, use {@link LitePal} instead. * * @author Tony Green * @since 1.1 */我们可以使用LitePalSupport类来替代DataSupport类 查看全部
LitePal库---DataSupport类被弃用

用LitePalSupport类替换
在使用LitePal库进行CRUD时需要我们的类继承DataSupport类,发现这个类被弃用了,/** * DataSupport is deprecated and will be removed in the future release. * For model inheritance, use {@link LitePalSupport} instead. * For static CRUD op, use {@link LitePal} instead. * * @author Tony Green * @since 1.1 */我们可以使用LitePalSupport类来替代DataSupport类

Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录

admin 发表了文章 • 0 个评论 • 118 次浏览 • 2018-06-28 10:49 • 来自相关话题

Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录





1、找到以”FKXXX“为外键的表A的子表,直接运行

select a.constraint_name, a.table_name, b.constraint_name 
from user_constraints a, user_constraints b
where a.constraint_type = 'R' 
and b.constraint_type = 'P' 
and a.r_constraint_name = b.constraint_name
and a.constraint_name = 'FKXXX'




2、删除相应的子表记录




3、删除主表记录 查看全部
Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录





1、找到以”FKXXX“为外键的表A的子表,直接运行

select a.constraint_name, a.table_name, b.constraint_name 
from user_constraints a, user_constraints b
where a.constraint_type = 'R' 
and b.constraint_type = 'P' 
and a.r_constraint_name = b.constraint_name
and a.constraint_name = 'FKXXX'




2、删除相应的子表记录




3、删除主表记录

连供系统的几个链接

admin 发表了文章 • 0 个评论 • 120 次浏览 • 2018-06-10 17:44 • 来自相关话题

连供出墨不好打气教程
http://www.tudou.com/programs/view/gC0-5FQSBs8/
打气时,要打久一点,看着红色墨水出来后,还要再继续打气二三十秒
不能一打出来就停
看下视频按照方法打气
 
 
抽墨视频: http://v.youku.com/v_show/id_X ... 9.0.0 你把我们配套给你的针筒和抽墨夹拿出来,按这个视频里的方法操作,抽一下不出墨水的墨盒
抽墨夹配一长一短共2个胶垫,抽黑色时用长胶垫,抽彩色时用短胶垫,要换着来抽,抽到针筒里有5-8ML的墨水出来为止。抽的时候,把墨盒倒过来抽,这样
 看下视频按方法抽墨
 
  查看全部
连供出墨不好打气教程
http://www.tudou.com/programs/view/gC0-5FQSBs8/
打气时,要打久一点,看着红色墨水出来后,还要再继续打气二三十秒
不能一打出来就停
看下视频按照方法打气
 
 
抽墨视频: http://v.youku.com/v_show/id_X ... 9.0.0 你把我们配套给你的针筒和抽墨夹拿出来,按这个视频里的方法操作,抽一下不出墨水的墨盒
抽墨夹配一长一短共2个胶垫,抽黑色时用长胶垫,抽彩色时用短胶垫,要换着来抽,抽到针筒里有5-8ML的墨水出来为止。抽的时候,把墨盒倒过来抽,这样
 看下视频按方法抽墨
 
 

bat批处理删除指定N天前的文件

admin 发表了文章 • 0 个评论 • 126 次浏览 • 2018-06-03 21:40 • 来自相关话题

    Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令。

       删除指定目录下7天前的文件(目录为C:\test):

forfiles /p "c:\test" /s /m *.* /d -7 /c "cmd /c del @path"

       删除批处理文件当前目录下7天前的文件:

forfiles /p %~dp0 /s /m *.* /d -7 /c "cmd /c del @path"

       将以上其中一行复制,新建文本文件,粘贴并保存为bat格式,定期运行或者加入计划任务。




显示当前目录下七天以前的文件路径


forfiles /p %cd% /s /m *.* /d -7 /c "cmd /c echo @path" 查看全部
    Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令。

       删除指定目录下7天前的文件(目录为C:\test):

forfiles /p "c:\test" /s /m *.* /d -7 /c "cmd /c del @path"

       删除批处理文件当前目录下7天前的文件:

forfiles /p %~dp0 /s /m *.* /d -7 /c "cmd /c del @path"

       将以上其中一行复制,新建文本文件,粘贴并保存为bat格式,定期运行或者加入计划任务。




显示当前目录下七天以前的文件路径


forfiles /p %cd% /s /m *.* /d -7 /c "cmd /c echo @path"

sqlserver游标使用和循环

admin 发表了文章 • 0 个评论 • 112 次浏览 • 2018-06-03 11:25 • 来自相关话题

/***  
游标的使用  
 讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱。  
 使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。  
1.3.1声明游标  
最简单游标声明:DECLARE <游标名>CURSOR FOR<SELECT语句>;  
其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询  
例子:[已表2 AddSalary为例子]  
Declare mycursor cursor for select * from AddSalary  
这样我就对表AddSalary申明了一个游标mycursor   
【高级备注】  
DECLARE <游标名> [INSENSITIVE] [SCROLL] CURSORFOR<SELECT语句>  
这里我说一下游标中级应用中的[INSENSITIVE]和[SCROLL]  
INSENSITIVE  
表明MS SQL SERVER 会将游标定义所选取出来的数据记录存放在一临时表内(建立在tempdb 数据库下)。对该游标的读取操作皆由临时表来应答。因此,对基本表的修改并不影响游标提取的数据,即游标不会随着基本表内容的改变而改变,同时也无法通过游标来更新基本表。如果不使用该保留字,那么对基本表的更新、删除都会反映到游标中。  
另外应该指出,当遇到以下情况发生时,游标将自动设定INSENSITIVE 选项。  
a.在SELECT 语句中使用DISTINCT、 GROUP BY、 HAVING UNION 语句;  
b.使用OUTER JOIN;  
c.所选取的任意表没有索引;  
d.将实数值当作选取的列。  
SCROLL  
表明所有的提取操作(如FIRST、 LAST、 PRIOR、 NEXT、 RELATIVE、 ABSOLUTE)都可用。如果不使用该保留字,那么只能进行NEXT 提取操作。由此可见,SCROLL 极大地增加了提取数据的灵活性,可以随意读取结果集中的任一行数据记录,而不必关闭再  
重开游标。   
1.3.2 打开游标  
非常简单,我们就打开刚才我们声明的游标mycursor  
OPEN mycursor   
1.3.3读取数据  
FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]  
参数说明:  
NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。  
INTO @变量名[,…]  把提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。  
现在我们就取出mycursor游标的数据吧!   
当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:  
Eg: Fetch next from mycursor 或则 Fetch first from mycursor  
这样我就取出了游标里的数据,但是光光这样可不够,我们还需要将取出的数据赋给变量  
--声明2个变量  
declare @O_ID NVARCHAR(20)  
declare @A_Salary float  
--将取出的值传入刚才声明的2个变量  
Fetch next from mycursor into @ O_ID,@ A_Salary  
   
1.3.4关闭游标  
CLOSE mycursor     
           
1.3.5删除游标  
DEALLOCATE mycursor           
   
1.3.6 实例训练  
**/  
CREATE PROCEDURE PK_Test  
AS  
    --声明2个变量  
    declare @O_ID nvarchar(20)    
    declare @A_Salary float    
    --声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同  
    declare mycursor cursor for select O_ID,A_Salary from AddSalary    
    --打开游标  
    open mycursor      
    --从游标里取出数据赋值到我们刚才声明的2个变量中  
    fetch next from mycursor into @O_ID,@A_Salary      
    --判断游标的状态  
    -- 0 fetch语句成功      
    ---1 fetch语句失败或此行不在结果集中      
    ---2 被提取的行不存在  
    while (@@fetch_status=0)  
    begin      
    --显示出我们每次用游标取出的值  
       print '游标成功取出一条数据'  
       print @O_ID  
       print @A_Salary     
    --用游标去取下一条记录  
       fetch next from mycursor into @O_ID,@A_Salary  
    end  
    --关闭游标  
    close mycursor  
    --撤销游标  
    DEALLOCATE mycursor   
GO  
  查看全部
/***  
游标的使用  
 讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱。  
 使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。  
1.3.1声明游标  
最简单游标声明:DECLARE <游标名>CURSOR FOR<SELECT语句>;  
其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询  
例子:[已表2 AddSalary为例子]  
Declare mycursor cursor for select * from AddSalary  
这样我就对表AddSalary申明了一个游标mycursor   
【高级备注】  
DECLARE <游标名> [INSENSITIVE] [SCROLL] CURSORFOR<SELECT语句>  
这里我说一下游标中级应用中的[INSENSITIVE]和[SCROLL]  
INSENSITIVE  
表明MS SQL SERVER 会将游标定义所选取出来的数据记录存放在一临时表内(建立在tempdb 数据库下)。对该游标的读取操作皆由临时表来应答。因此,对基本表的修改并不影响游标提取的数据,即游标不会随着基本表内容的改变而改变,同时也无法通过游标来更新基本表。如果不使用该保留字,那么对基本表的更新、删除都会反映到游标中。  
另外应该指出,当遇到以下情况发生时,游标将自动设定INSENSITIVE 选项。  
a.在SELECT 语句中使用DISTINCT、 GROUP BY、 HAVING UNION 语句;  
b.使用OUTER JOIN;  
c.所选取的任意表没有索引;  
d.将实数值当作选取的列。  
SCROLL  
表明所有的提取操作(如FIRST、 LAST、 PRIOR、 NEXT、 RELATIVE、 ABSOLUTE)都可用。如果不使用该保留字,那么只能进行NEXT 提取操作。由此可见,SCROLL 极大地增加了提取数据的灵活性,可以随意读取结果集中的任一行数据记录,而不必关闭再  
重开游标。   
1.3.2 打开游标  
非常简单,我们就打开刚才我们声明的游标mycursor  
OPEN mycursor   
1.3.3读取数据  
FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]  
参数说明:  
NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。  
INTO @变量名[,…]  把提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。  
现在我们就取出mycursor游标的数据吧!   
当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:  
Eg: Fetch next from mycursor 或则 Fetch first from mycursor  
这样我就取出了游标里的数据,但是光光这样可不够,我们还需要将取出的数据赋给变量  
--声明2个变量  
declare @O_ID NVARCHAR(20)  
declare @A_Salary float  
--将取出的值传入刚才声明的2个变量  
Fetch next from mycursor into @ O_ID,@ A_Salary  
   
1.3.4关闭游标  
CLOSE mycursor     
           
1.3.5删除游标  
DEALLOCATE mycursor           
   
1.3.6 实例训练  
**/  
CREATE PROCEDURE PK_Test  
AS  
    --声明2个变量  
    declare @O_ID nvarchar(20)    
    declare @A_Salary float    
    --声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同  
    declare mycursor cursor for select O_ID,A_Salary from AddSalary    
    --打开游标  
    open mycursor      
    --从游标里取出数据赋值到我们刚才声明的2个变量中  
    fetch next from mycursor into @O_ID,@A_Salary      
    --判断游标的状态  
    -- 0 fetch语句成功      
    ---1 fetch语句失败或此行不在结果集中      
    ---2 被提取的行不存在  
    while (@@fetch_status=0)  
    begin      
    --显示出我们每次用游标取出的值  
       print '游标成功取出一条数据'  
       print @O_ID  
       print @A_Salary     
    --用游标去取下一条记录  
       fetch next from mycursor into @O_ID,@A_Salary  
    end  
    --关闭游标  
    close mycursor  
    --撤销游标  
    DEALLOCATE mycursor   
GO  
 

dos命令下操作sql server 数据库

admin 发表了文章 • 0 个评论 • 106 次浏览 • 2018-05-27 20:03 • 来自相关话题

输入osql ?查看是否支持当前版本,如果是SQL Server 2005以上用Sqlcmd  ,  以下用Osql

连接数据库


(a)Osql -S localhost -U username -P password(SQL Server身份验证,需要用户民和密码)

(b)Osql -S localhost (Widndos身份验证,不需要用户民和密码)

(localhost代表本机,如果是远程机器需要输入对方ip地址,username为用户名,password为密码,根据sql server版本使用sqlcmd还是osql)




查询数据库中所有数据库名称

1>select name from master..sysdatabases order by name;


2>go




创建数据库

//创建一个tt的数据库
2>create database tt;
2>go





使用数据库

1>use tt//使用tt数据库




某个数据库下所有表的名称

1> use tt
2> select name from SysObjects where XType='U' order by name
3> go





从表中选取数据(前提先使用对应的数据库)

1>SELECT LastName,FirstName FROM Persons//从名为 "Persons" 的数据库表,获取名为 "LastName" 和 "FirstName" 的列的内容


2>go
  查看全部
输入osql ?查看是否支持当前版本,如果是SQL Server 2005以上用Sqlcmd  ,  以下用Osql

连接数据库


(a)Osql -S localhost -U username -P password(SQL Server身份验证,需要用户民和密码)

(b)Osql -S localhost (Widndos身份验证,不需要用户民和密码)

(localhost代表本机,如果是远程机器需要输入对方ip地址,username为用户名,password为密码,根据sql server版本使用sqlcmd还是osql)




查询数据库中所有数据库名称

1>select name from master..sysdatabases order by name;


2>go




创建数据库

//创建一个tt的数据库
2>create database tt;
2>go





使用数据库

1>use tt//使用tt数据库




某个数据库下所有表的名称

1> use tt
2> select name from SysObjects where XType='U' order by name
3> go





从表中选取数据(前提先使用对应的数据库)

1>SELECT LastName,FirstName FROM Persons//从名为 "Persons" 的数据库表,获取名为 "LastName" 和 "FirstName" 的列的内容


2>go
 

oracle查看被锁的表和解锁

admin 发表了文章 • 0 个评论 • 97 次浏览 • 2018-05-24 15:07 • 来自相关话题

--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;

--查看被锁的表 
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

--查看那个用户那个进程照成死锁
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

--查看连接的进程 
SELECT sid, serial#, username, osuser FROM v$session;

--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;

这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。

--杀掉进程 sid,serial#
alter system kill session'210,11562';
-- 1. 查看被锁的表
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name
 FROM v$process p, v$session a, v$locked_object b, all_objects c
 WHERE p.addr = a.paddr 
 AND a.process = b.process
 AND c.object_id = b.object_id
-- 2. 查看是哪个进程锁的 
SELECT sid, serial#, username, status, osuser FROM v$session  where serial# = '11016'





-- 4.批量解锁
declare cursor mycur is   
select b.sid,b.serial#   
from v$locked_object a,v$session b   
where a.session_id = b.sid group by b.sid,b.serial#;   
   
begin   
  for cur in mycur   
    loop     
     execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');   
     end loop;   
end; 查看全部
--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;

--查看被锁的表 
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

--查看那个用户那个进程照成死锁
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

--查看连接的进程 
SELECT sid, serial#, username, osuser FROM v$session;

--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;

这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。

--杀掉进程 sid,serial#
alter system kill session'210,11562';
-- 1. 查看被锁的表
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name
 FROM v$process p, v$session a, v$locked_object b, all_objects c
 WHERE p.addr = a.paddr 
 AND a.process = b.process
 AND c.object_id = b.object_id
-- 2. 查看是哪个进程锁的 
SELECT sid, serial#, username, status, osuser FROM v$session  where serial# = '11016'





-- 4.批量解锁
declare cursor mycur is   
select b.sid,b.serial#   
from v$locked_object a,v$session b   
where a.session_id = b.sid group by b.sid,b.serial#;   
   
begin   
  for cur in mycur   
    loop     
     execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');   
     end loop;   
end;