Oracle 11G exp 导出空表操作

1、先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;

2、用以下这句查找空表
select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0

把第二步查询结果导出的内容在SQL执行后,再导出即可。

[转]在NopCommerce中新建数据表、新建实体Model步骤

本文转自:http://www.cnblogs.com/aneasystone/archive/2012/08/27/2659183.html

在NopCommerce中新增一个Domain Model,需要以下几个步骤:

1. 新建一个Entity Class (Nop.Core.Domain/Entity.cs)

2. 新建一个Mapping Class (Nop.Data/Mapping/EntityMap.cs)

3. 新建一个View Model (Nop.Admin.Models/EntityModel.cs 或 Nop.Web.Models/EntityModel.cs)

4. 新建Model Validator (Nop.Admin.Validators/EntityValidator.cs 或 Nop.Web.Validators/EntityValidator.cs)

5. 为AutoMapper新建映射配置,用来完成Model和Entity之间的转换 (Nop.Admin.Infrastructure/AutoMapperStartupTask.cs 或 Nop.Web.Infrastructure/AutoMapperStartupTask.cs)

6. 编写ToModel和ToEntity (Nop.Admin/MappingExtensions.cs 或 Nop.Web/MappingExtensions.cs)

7. 创建Service和Service Interface (Nop.Services/EntityService.cs 和 Nop.Services/IEntityService.cs)

8. 最后新建的Model创建Controller和View

PS: NopCommerce不支持database migration,需要手动更新数据库。

参考资料:http://www.nopcommerce.com/docs/73/updating-an-existing-entity-how-to-add-a-new-property.aspx

Oracle SQL语句去重查询

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId
)>1)

3、查找表中多余的重复记录(多个字段)

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

source:http://www.jb51.net/article/34820.htm

IE 兼容性 HTTP 标头

默认使用如下即可:
< meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

无论页面是否包含 指令,均使用 Windows Internet Explorer 7 的标准渲染模式。
< meta http-equiv="X-UA-Compatible" content="IE=7" />

Edge 模式通知 Windows Internet Explorer 以最高级别的可用模式显示内容,这实际上破坏了“锁定”模式
< meta http-equiv="X-UA-Compatible" content="edge" />

XP 远程连接 Windows 2008 以上版本改注册表方法

修改XP注册表以支持使用NLA验证方式进行远程桌面连接。
开始-运行-regedit打开注册表编辑器。
定位到以下注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa,双击右侧Security Packages,打开编辑多字符串对话框,在列表中添加 tspkg 。
定位到以下注册表键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders,双击右侧的SecurityProviders,打开编辑字符串对话框,在数值数据框中添加 , credssp.dll ,注意逗号后有一个英文的空格。
修改完成重启即可。

easyui tree 使用 expand 实现仅展开一层效果

对于easyui的tree控件,一般都使用expandAll来实现树形菜单所有层级的展开,但如果需要指定展开某层级则需要先获取对应层级节点,然后使用expand展开单一节点。

有一个类别的树形菜单分为了3层,首先先设置tree仅显示第一层,然后直接使用getChildren方法获取第一层的节点集合,再循环让其节点expend即可展开第二层,但为了第三层不被展开,所以在给tree传json数据时,传递一个level进行判断。

实例代码如下:

$(‘#’ + treeId).tree({
    checkbox: false,
    url: “/Material/MaterialClass/GetTreeDataJson?parent=0&ismarket=1”,
    animate: true,
    lines: true,
    onClick: function (node) {
      CheckTreeNode(node);
    },
    onBeforeExpand: function (node, param) {
    },
    onLoadSuccess: function (node, data) {
      if (data) {
        $(data).each(function (index, d) {
        //只展开2级
          if (this.state == ‘closed’ && this.level < 2) {
            var children = $(‘#’ + treeId).tree(‘getChildren’);
            for (var i = 0; i < children.length; i++) {
              $(‘#’ + treeId).tree(‘expand’, children[i].target);
            }
            //全部打开 、合并操作
            //$(‘#’ + treeId).tree(‘expandAll’);
            //$(‘#’ + treeId).tree(“collapseAll”);
          }
         });
      }
    }
});

.NET C# 判断数字类型属性是否为数字 IsNaN

遇到某个double类型的字段,有输出NaN的可能。页面javascript拥有IsNaN方法来判断,.net同样自带相应方法来判断。

使用 “类型.IsNaN(value)”(double.IsNaN(value)) 来进行判断。

代码如下:

if (double.IsNaN(arb.CurrencyRate))
{
arb.CurrencyRate = 1;      //如果非数字,默认给1
}

Oracle 笔记 DBLINK 查看、创建、删除

1. 查看当前库拥有的DBLINK

方法1:select owner,object_name from dba_objects where object_type=’DATABASE LINK’;

方法2:select * from dba_db_links;

2. 创建DBLINK

首先赋予用户权限或通过其他方式赋予权限。

grant create public database link to 用户名;

创建link

create public database link 【dblink名称 】 connect to 【用户名】 identified by 【密码】

using ‘(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME =servicename)

)

)’;

//using这串为tnsnames对应数据库配置内容。

//确定配置文件内SERVICE_NAME名称方法:

select name,value from v$parameter where name=’service_names’

 

3. 删除DBLINK

drop public database link 【dblink名称】;

 

使用DBLINK查询其他数据库信息格式:

select * from 用户名.表名@LINK名