原文地址:http://blog.csdn.net/business122/article/details/7528859 今天写一个对数据库做快照的存储过程,用到了动态表名,突然发现MYSQL不支持直接使用变量做表名,GOOGLE了下,采用以下方法: ); SET dbName = 'aaa'; SET @STMT :=CONCAT("CREATE TABLE ",dbName," SELECT id from gamedb;"); PREPARE STMT FR
ORACLE建表时如果表名或者字段名存在大小写同时存在的情况下,默认为区分大小写,此时在select/updata等操作时需要在表名或者字段名上添加双引号,否则会报"视图不存在"的错误,为了规避此问题,我们需要使用如下建表语句如下(这样建立表名及字段名均为大写): BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FROM user_tables WHERE t
-- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @StrSql='DECLARE Ba_Cursor CURSOR FOR (SELECT a.PhoneId from '+@TABLE+' a left JOIN tj_machine_log b on a.PhoneId=b.PhoneId where a.CreateTime BETWEEN '''+CONVERT(varchar(100), @STARTTIME, 20)+''' AND '''+
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查询指定表的所有字段名和字段说明:select t.column_name, t.column_name from
declare v_tName varchar(50); v_sqlanalyze varchar(500); v_num number; v_sql varchar(500); cursor c1 is select table_name from user_tables; begin open c1; loop fetch c1 into v_tName; if c1%found then v_sqlanalyze :='analyze table '||v_tName||' es
查询表的所有列及其属性:select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = women;查找表的主键:select cu.* from user_cons_columns cu, user_constraints au where cu.cons
转自 :http://gis-conquer.blog.sohu.com/170243422.html 查询所有表名:select t.table_name from user_tables t; 查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查询指定
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查询指定表的所有字段名和字段说明:select t.column_name, t.column_name from
); DECLARE temp2 int; set temp1=m_tableName; set temp2=m_maxCount; set @sqlStr=CONCAT('select * from ',temp1,' limit ',temp2); PREPARE stmt from @sqlStr; EXECUTE stmt;
在oracle数据库中你要在程序里得到一张表的数据就必须先创建游标和SQL Service不一样. --创建游标create or replace package pkg_Dataas type refcursor is REF cursor; procedure pro_rows(refcursor out refcursor);end pkg_Data; --创建存储过程create or replace procedure prc_DataInput(dateStr in varchar2
方法1: --Oracle 根据字段值查询其所在的表.字段 DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns; a NUMBER; sql_hard VARCHAR2(); vv NUMBER; BEGIN FOR rec1 IN cur_query LOOP a:=; IF rec1.data_type ='VARCHAR2' OR rec1.data_type
在oracle的存储过程中,不能直接使用DDL语句,比方create.alter.drop.truncate等. 那假设我们想在存储过程中建立一张暂时表就仅仅能使用动态sql语句了: create or replace procedure pro as str_sql varchar2(100); begin -- 创建暂时表 str_sql := 'create global temporary table temp_table ( col1 varchar2(10), col2 number