精华内容
下载资源
问答
  • 问题:第一次代码commit的时候,总是报错,看了下报错信息,貌似是在commit之前会检查一下代码错误,可是代码没有什么错误啊,能运行起来,难道eslint检查的错误也会被检查出来,然后commit失败吗?最后在网上找到了...

    上一个项目用的svn,新项目用了git,很开心,终于学习了git了,本以为把git都学会了,但是还是遇到了一个不在自己学习的知识点范围内的问题,最后是同事帮忙解决的。

    问题:第一次代码commit的时候,总是报错,看了下报错信息,貌似是在commit之前会检查一下代码错误,可是代码没有什么错误啊,能运行起来,难道eslint检查的错误也会被检查出来,然后commit失败吗?最后在网上找到了解决方案。

     

    首先认识一下git的钩子:

    钩子都被存储在 git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当用 git init 初始化一个新版本库时,git 默认会在这个目录中放置一些示例脚本。这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,不过,任何正确命名的可执行脚本都可以正常使用

     

     GIT_DIR/hooks/pre-commit :

    这个钩子被 git commit 命令调用, 而且可以通过在命令中添加--no-verify 参数来跳过。这个钩子不需要参数,在得到提交消息和开始提交前被调用。如果钩子返回值不是0,那么 git commit 命令就会中止执行。

    译注:这个钩子可以用来在提交前检查代码错误(例如运行lint程序)。

    当默认的pre-commit钩子被启用时,如果它发现文件尾部有空白行,那么就会中止此次提交。

     

    转载于:https://www.cnblogs.com/zoeeying/p/10891943.html

    展开全文
  • 存储过程捕捉报错

    2021-04-28 11:01:04
    exception ... rollback; ... commit; end;

    exception
    when others then
    v_errorcode := sqlcode;
    v_errormsg := sqlerrm;
    rollback;
    insert into t_wa_sys_log_err
    (err_date, name_proc, err_code, err_msg)
    values
    (sysdate, ‘p_sy_hcp_ywcx’, v_errorcode, v_errormsg);
    v_ret := 99;
    commit;
    end;

    展开全文
  • mysql> delimiter //mysql> create procedure rong()-> begin->... end //Query OK, 0 rows affected (0.00 sec)mysql存储过程批量插入数据->delimiter //-> create procedure hua...

    mysql> delimiter //

    mysql> create procedure rong()

    -> begin

    -> select * from student;

    -> end //

    Query OK, 0 rows affected (0.00 sec)

    mysql存储过程批量插入数据

    ->delimiter //

    -> create procedure huan()

    -> begin

    -> declare i int;

    -> set i=2;

    -> while i<100 do

    -> insert into student(id,name,sex)values(i,'huan','girl');

    -> set i=i+1;

    -> end while;

    -> end //

    Query OK, 0 rows affected (0.00 sec)

    执行存储过程,插入数据

    call huan

    oracle存储过程批量插入数据

    create or replace procedure rong

    is

    i integer;

    begin

    i := 1;

    loop

    insert into student_info(id,name,gender,describe,blogsite)values(i,'cuihuanhuan','girl','dddd','baidu.com');

    i := i + 1;

    exit when i > 100;

    end loop;

    end;

    不缩进也没事

    exec rong;

    commit;

    这样就成功插入100条数据了

    sqlserver存储过程批量插入数据

    declare @i bigint;

    set @i=1

    while(@i<=5000)

    begin

    insert into student_info(id,name,gender,comment,blogsite)values(@i,'cuiuanhuan','girl','自卫','baidu.com')

    set @i=@i+1

    end

    展开全文
  • C#程序调用Sql Server存储过程,存储过程报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo].[Test] Script Date: 2017/4/17 10:38:54 ******/ SET ANSI_NULLS ON GO ...

    C#程序调用Sql Server存储过程,存储过程中报错情况,返回值...

    0.SQL存储过程

    USE [Opos]
    GO
    /****** Object:  StoredProcedure [dbo].[Test]    Script Date: 2017/4/17 10:38:54 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[Test]
        @NameTest Varchar(10)--程序中将这个值写的很大的话,报错"将截断字符串或二进制数据。"
    AS
    BEGIN
        Begin Tran
    
        Begin Try
            Declare @TestTab Table(Name Nvarchar(1),ID Int)
            --不是在Catch中报错...
            If(@NameTest = '')
                Begin
                    Insert @TestTab
                    Select @NameTest,0
                    --本来将错误严重级定为[19],程序Catch报错↓
                    --大于 18 的错误严重级别只能由 sysadmin 角色的成员用 WITH LOG 选项指定。
                    --Raiserror('Name 不可为空 ...',19,100)
                    /*貌似这里自定义的错误,程序catch中不报错...*/
                    Raiserror('Name 不可为空 ...',10,100)
                End
            
    
            Insert @TestTab
            Select @NameTest,0
    
    
            Select * From @TestTab
            --提交事务
            Commit Tran
            Return 1
    
        End Try
    
        Begin Catch
            Declare @Error_Msg Nvarchar(4000),@Error_Severity Int
    
            Select @Error_Msg = Error_message(),@Error_Severity = ERROR_SEVERITY()
            --回滚事物
            Rollback Tran
            --报错
            Raiserror(@Error_Msg,@Error_Severity,100)
            --返回值
            Return 0
        End Catch
    
    
    END

    1.C# code

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Windows;
    
    namespace CProcedureReturn
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
    
    
            private void RunProcedure(object sender, RoutedEventArgs e)
            {
                try
                {
                    string name_test = "304985039480598304985039840583409853409098098098098098";
                    SqlParameter[] pars = {
                    new SqlParameter("@NameTest",name_test)
                    };
                    //DataSet ret_tab = db.RunProcedure("[csms].[spClassTableGenerateZixi]", pars, "ret_tab");
                    //受影响的行数...
                    int affect_rows_count = 0;
                    //存储过程的返回值...
                    int result = this.RunProcedure("[dbo].[Test]", pars, out affect_rows_count);
                    if (result == 1)
                    {
                        MessageBox.Show("未报错,成功!");
                    }
                    else
                    {
                        MessageBox.Show("报错!");
                    }
    
                }
                catch (System.Data.SqlClient.SqlException sql_e)
                {
                    MessageBox.Show(sql_e.Message);
                }
            }
    
    
    
    
    
            #region SQL一些函数
            //连接数据库的字符串...
            public static string connectionString = "server=.;database=Opos;uid=sa;pwd=1234";
    
            /// <summary>
            /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
            /// </summary>
            /// <param name="connection">数据库连接</param>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <returns>SqlCommand</returns>
            private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
            {
    
                SqlCommand command = new SqlCommand(storedProcName, connection);
                command.CommandType = CommandType.StoredProcedure;
                foreach (SqlParameter parameter in parameters)
                {
                    if (parameter != null)
                    {
                        // 检查未分配值的输出参数,将其分配以DBNull.Value.
                        if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                            (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        command.Parameters.Add(parameter);
                    }
                }
    
                return command;
            }
    
    
            /// <summary>
            /// 创建 SqlCommand 对象实例(用来返回一个整数值)    
            /// </summary>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <returns>SqlCommand 对象实例</returns>
            private static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
            {
                SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
                command.Parameters.Add(new SqlParameter("ReturnValue",
                    SqlDbType.Int, 4, ParameterDirection.ReturnValue,
                    false, 0, 0, string.Empty, DataRowVersion.Default, null));
                return command;
            }
    
    
            /// <summary>
            /// 执行存储过程,返回影响的行数        
            /// </summary>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <param name="rowsAffected">影响的行数</param>
            /// <returns></returns>
            public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    int result;
                    connection.Open();
                    SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
                    rowsAffected = command.ExecuteNonQuery();
                    result = (int)command.Parameters["ReturnValue"].Value;
                    //Connection.Close();
                    return result;
                }
            }
    
            /// <summary>
            /// 执行存储过程
            /// </summary>
            /// <param name="storedProcName">存储过程名</param>
            /// <param name="parameters">存储过程参数</param>
            /// <param name="tableName">DataSet结果中的表名</param>
            /// <returns>DataSet</returns>
            public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    DataSet dataSet = new DataSet();
                    connection.Open();
                    SqlDataAdapter sqlDA = new SqlDataAdapter();
    
                    SqlCommand sql_command = new SqlCommand();
                    sql_command = BuildQueryCommand(connection, storedProcName, parameters);
    
    
                    sqlDA.SelectCommand = sql_command;//BuildQueryCommand(connection, storedProcName, parameters);
                    sqlDA.Fill(dataSet, tableName);
                    connection.Close();
                    return dataSet;
                }
            }
    
            #endregion
    
    
    
        }
    }

     

    x

    测试了下
    RAISERROR ( '错误消息', 16, 1)可以在异常中捕获

     

    x

     

    转载于:https://www.cnblogs.com/love-zf/p/6793084.html

    展开全文
  • 一共有三条插入语句,如果执行到第三条报错了,如何回滚之前1,2插入的数据呢? create or replace PROCEDURE ADDproduct(v_prouct_item_id in number,v_name in varchar2,v_discription in varchar2,v_xieyiqi ...
  • 这是存储过程的代码,我是想通过传入owner name和table name,让程序自动的去drop table,但是发现用hard code "drop table ETL.FX001_EBANK_LOG01;"都不行,编译都过不去,不知道哪里出了问题,错误信息是: ...
  • 执行修改存储过程报错: 消息 156,级别 15,状态 1,第 1 行 关键字 'TRANSACTION' 附近有语法错误。 双击消息,光标停在COMMIT句 -- 结束事务 COMMIT TRANSACTION Tran_MSG SET TRANSACTION ...
  • 本意是用游标找到t3表的的笛卡尔积中每行数据每个字段id重复不超过一半的数据然后插入到t4表中 但是写出来一直报错 新手 一直改然后一直报错 哪位哥哥姐姐看下这个怎么修正能运行 帮帮忙 改完能用的话我可以再给20c ...
  • 第一次写,求大神指点. CREATE OR REPLACE PROCEDURE P_USER_STATISTICS IS time DATE; cursor userStatistics is select * from ( ... select t1.register_num register_num, ... commit; end;
  • EXECUTE 调用的存储过程; 其他DB操作; COMMIT; END; / EXIT 就报错,但是将主要代码部分改为下面以后就正常了。为什么呢。 *调用的存储过程单独执行是没问题的。 EXECUTE 调用的存储过程; BEGIN ...
  • 环境oracle 9.2.0.8HP UX 11i创建dblinkcreate database link anlink connect to xxxx identified by xxxx using 'gghw';创建存储过...
  • java.lang.IllegalStateException: Can ...不能在onSaveInstanceState的方法之后调用commit方法   原因: 由于commit方法可以在调用之前保存fragment回退状态, 所以当系统自动回调onSaveInstanceState此方法时表...
  • 在oracle数据库创建可自动执行的存储过程中,编译时,出现如下错误: PLS-00103: 出现符号 "end-of-file"在需要下列之一时: ( begin case declare end exception exit for goto if loop mod null pragma raise ...
  • commit; v_sql:= 'select stuid,stuname,score from system.t_studentinfo'; for stu_record in (execute immediate v_sql) loop dbms_output.put_line(stu_record.stuid||' '||stu_record.stuname||' '||stu_...
  • oracle存储过程commit问题

    千次阅读 2018-05-23 16:03:24
    首先是存储过程代码,没有commit;C#调用代码测试结果成功写入模拟报错,但是不进行rollback同样成功写入所以在捕获异常后,第一时间要先rollback
  • 存储过程报错

    2012-02-08 11:07:23
    COMMIT; END a; PROCEDURE b IS begin declare a number; begin select count(1) into a from user_tables where table_name='b'; if a>0 then dbms_output.put_line('表存在'); else dbms...
  • 我在当前用户创建了一个存储过程并编译成功,然后调用 为什么报错 ora-06550:第4行第3列 pls 00201 必须声明标识符 代码如下 ``` 创建: create or replace procedure test_sse(v_num OUT VARCHAR2) IS BEGIN v_...
  • **Navicat for Oracle 创建执行计划 执行存储过程报错** 当创建执行计划时: --自动执行*1小时 ``` Declare jobno Number; Begin dbms_job.submit(:jobno,'ur_procedure;',Sysdate,'sysdate+1/...
  • oracle保存批量数据(使用的是存储过程调用方式),以下为后端的部分代码片段 @Override //使用存储过程保存批量对象 public int saveman(List&lt;ManDTO&gt; manlist) throws NamingException, ...
  • 2、存储过程报错之后,JOB的下次执行时间不会按照interval的设置来更新,但如果存储过程报错通过exception进行了捕获,则JOB的下次执行时间正常按照interval的设置来更新 3、存储过程中设立子程序捕获报错,在...
  • 今天写了一个有关存储过程的代码段,但是出师不利第一个存储就开始报错(以下为本人在实验过程中所遇到的错误,如有不妥之处,望指正) 题目要求: 借书时要求输入借阅流水号,借书证号,图书编号。(即该存储过程...
  • 触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务 正常情况下,...
  • A用户调用B用户的存储过程,如果存储过程中有动态建表的SQL语句,如create table test,那么管理员(如dba)必须给B用户赋予create table的权限,即使B已经是dba角色也必须单独授予建表的权限;如果是create table A...
  • 存储过程是: create or replace PROCEDURE SP_ADDORDERS ----新建委托单 ( P_ORDERNUM IN NVARCHAR2, P_EXPERINAME IN NVARCHAR2, P_CONTRACTNUM IN NVARCHAR2, P_BATCHNUM IN NVARCHAR2, P_BALENUM ...
  • create or replace package body sdic_gl_del_package is --检查数据是否存在 ...commit; exception when notexist then msg:='target bill is not exist!'; end; end sdic_gl_del_package;
  • // 在命令请求对象中设置存储过程名。 cmdRequest .setProcedure("T_PHM_DELETEDESKTOPNAVIGATION(:deskId, :desknavigationId, :out_mark)"); // 设置输入参数 cmdRequest.addDataParam("deskId", ...
  • ORA-00918: column ambiguously defined (字段模糊的... 而动态的查询中的判断条件where是拼接而成的,拼的时候往往容易忘加表名前缀而导致报错ORA-00918: 测试:/* 基本员工信息表 tbl_hos_employee */ drop t
  • 本人新手,在mysql数据库写了一个存储过程,第一遍执行正常,第二遍执行就报错:Error Code: 1172. Result consisted of more than one row。存储过程如下: CREATE DEFINER=`root`@`localhost` PROCEDURE `...
  • 执行定时任务时报错: 不一定是权限问题,但肯定是存储过程执行的问题。我的存储过程带参数,我用测试存储过程的代码放入了job的what值,eg:proc_update_tag_cor_id(v_cor=>:v_corv_tag=>:v_tag);执行时没有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,841
精华内容 15,136
关键字:

存储过程commit报错