当前位置:  数据库>其它
本页文章导读:
    ▪存储过程的运用之print_table      create or replace procedure print_table ( p_query in varchar2, p_date_fmt in varchar2 default 'dd-mon-yyyy hh24:mi:ss' ) -- .........
    ▪SQL Server 批处理语句            o批处理是从应用程序发送到SQLServer并得以执行的一条或多条T-SQL语句。使用批处理时,有下面一些注意事项。       o一个批处理中只要存在一处语法.........
    ▪windows下mysql忘记root密码解决方法      1、首先将mysqld服务停掉 2、在命令行中,cd 到mysql的bin目录下,然后执行如下命令   mysqld  --skip-grant-tables 此时命令行会停止不动,然后你另起一个命令行 3、在新的命令行中输入:mysql .........

[1]存储过程的运用之print_table
    来源: 互联网  发布时间: 2013-11-07
create or replace
procedure print_table
( p_query in varchar2,
  p_date_fmt in varchar2 default 'dd-mon-yyyy hh24:mi:ss' )
                                                                                 
                                           
-- this utility is designed to be installed ONCE in a database and used
-- by all.  Also, it is nice to have roles enabled so that queries by
-- DBA's that use a role to gain access to the DBA_* views still work
-- that is the purpose of AUTHID CURRENT_USER
AUTHID CURRENT_USER
is
    l_theCursor     integer default dbms_sql.open_cursor;
    l_columnValue   varchar2(4000);
    l_status        integer;
    l_descTbl       dbms_sql.desc_tab;
    l_colCnt        number;
    l_cs            varchar2(255);
    l_date_fmt      varchar2(255);
                                                                                 
                                           
    -- small inline procedure to restore the sessions state
    -- we may have modified the cursor sharing and nls date format
    -- session variables, this just restores them
    procedure restore
    is
    begin
       if ( upper(l_cs) not in ( 'FORCE','SIMILAR' ))
       then
           execute immediate
           'alter session set cursor_sharing=exact';
       end if;
       if ( p_date_fmt is not null )
       then
           execute immediate
               'alter session set nls_date_format=''' || l_date_fmt || '''';
       end if;
       dbms_sql.close_cursor(l_theCursor);
    end restore;
begin
    -- I like to see the dates print out with times, by default, the
    -- format mask I use includes that.  In order to be "friendly"
    -- we save the date current sessions date format and then use
    -- the one with the date and time.  Passing in NULL will cause
    -- this routine just to use the current date format
    if ( p_date_fmt is not null )
    then
       select sys_context( 'userenv', 'nls_date_format' )
         into l_date_fmt
         from dual;
                                                                                 
                                           
       execute immediate
       'alter session set nls_date_format=''' || p_date_fmt || '''';
    end if;
                                                                                 
                                           
    -- to be bind variable friendly on this ad-hoc queries, we
    -- look to see if cursor sharing is already set to FORCE or
    -- similar, if not, set it so when we parse -- literals
    -- are replaced with binds
    if ( dbms_utility.get_parameter_value
         ( 'cursor_sharing', l_status, l_cs ) = 1 )
    then
        if ( upper(l_cs) not in ('FORCE','SIMILAR'))
        then
            execute immediate
           'alter session set cursor_sharing=force';
        end if;
    end if;
                                                                                 
                                           
    -- parse and describe the query sent to us.  we need
    -- to know the number of columns and their names.
    dbms_sql.parse(  l_theCursor,  p_query, dbms_sql.native );
    dbms_sql.describe_columns
    ( l_theCursor, l_colCnt, l_descTbl );
                                                                                 
                                           
    -- define all columns to be cast to varchar2's, we
    -- are just printing them out
    for i in 1 .. l_colCnt loop
        if ( l_descTbl(i).col_type not in ( 113 ) )
        then
            dbms_sql.define_column
            (l_theCursor, i, l_columnValue, 4000);
        end if;
    end loop;
                                                                                 
                                           
    -- execute the query, so we can fetch
    l_status := dbms_sql.execute(l_theCursor);
                                                                                 
                                           
    -- loop and print out each column on a separate line
    -- bear in mind that dbms_output only prints 255 characters/line
    -- so we'll only see the first 200 characters by my design...
    while ( dbms_sql.fetch_rows(l_theCursor) > 0 )
    loop
        for i in 1 .. l_colCnt loop
            if ( l_descTbl(i).col_type not in ( 113 ) )
            then
                dbms_sql.column_value
                ( l_theCursor, i, l_columnValue );
                dbms_output.put_line
                ( rpad( l_descTbl(i).col_name, 30 )
                || ': ' ||
                substr( l_columnValue, 1, 200 ) );
            end if;
        end loop;
        dbms_output.put_line( '-----------------' );
    end loop;
                                                                                 
                                           
    -- now, restore the session state, no matter what
    restore;
exception
    when others then
        restore;
        raise;
end;




SQL> set serverout on size 100000
SQL> select * from a;
 
    ID COL
------ -----
     1 AA
     2 bb
     3 cc
 
SQL> exec print_table('select * from a');
 
ID                            : 1
COL                           : AA
-----------------
ID                            : 2
COL                           : bb
-----------------
ID                            : 3
COL                           : cc
-----------------
 
PL/SQL procedure successfully completed


作者:linwaterbin 发表于2013-1-21 18:09:17 原文链接
阅读:0 评论:0 查看评论

    
[2]SQL Server 批处理语句
    来源: 互联网  发布时间: 2013-11-07
      o批处理是从应用程序发送到SQLServer并得以执行的一条或多条T-SQL语句。使用批处理时,有下面一些注意事项。
      o一个批处理中只要存在一处语法错误,整个批处理都无法通过编译。
      o批处理中可以包含多个存储过程,但除第一个过程外,其他存储过程前面都必须使用EXECTUE关键字。
      o某些特殊的SQL指令不能和别的SQL语句共存在一个批处理中,如CREATETABLE和CREATEVIEW语句。这些语句只能独自存在于一个单独的存储过程中。
      o所有的批处理使用GO作为结束的标志,当编译器读到GO的时候就把GO前面的所有语句当成一个批处理,然后打包成一个数据包发给服务器。
      oGO本身不是T-SQL的组成部分,只是一个用于表示批处理结束的前端指令。
      oCREATEDEFAULT、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATESCHEMA、CREATETRIGGER和CREATEVIEW语句不能在批处理中与其他语句组合使用。批处理必须以CREATE语句开头,所有跟在该批处理后的其他语句将被解释为第一个CREATE语句定义的一部分。
      o不能在删除一个对象之后,在同一批处理中再次引用这个对象。
      o如果EXECUTE语句是批处理中的第一句,则不需要EXECUTE关键字。如果EXECUTE语句不是批处理中的第一条语句,则需要EXECUTE关键字。
      o不能在定义一个CHECK约束之后,在同一个批处理中使用。
      o不能在修改表的一个字段之后,立即在同一个批处理中引用这个字段。
      o使用SET语句设置的某些选项值不能应用于同一个批处理中的查询。
作者:wltica 发表于2013-1-21 19:33:10 原文链接
阅读:0 评论:0 查看评论

    
[3]windows下mysql忘记root密码解决方法
    来源: 互联网  发布时间: 2013-11-07

1、首先将mysqld服务停掉

2、在命令行中,cd 到mysql的bin目录下,然后执行如下命令

  mysqld  --skip-grant-tables

此时命令行会停止不动,然后你另起一个命令行

3、在新的命令行中输入:mysql

就可以进入mysql了,然后在在mysql的命令行中输入修改root密码的命令;如下

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;

>exit

4、然后在重启mysql服务就可以了

 

不过这中间也可能有别的错误,如:

InnoDB: Operating system error number 5 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. It may also be you have created a subdirectory InnoDB: of the same name as a data file. InnoDB: File name .\ibdata1 InnoDB: File operation call: ‘open’. InnoDB: Cannot continue operation.

  可能的原因是1、在移动那个\ibdata1文件时,将该文件损坏(将该文件修复一下)

                          2、给该问件加上了只读权限(去掉他的只读权限)

作者:ljasdf123 发表于2013-1-21 21:39:29 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3