首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

SQL语句总是错误,太杯具了

2013-08-06 
SQL语句总是异常,太杯具了Insert into T_BD_GROUPHEADER(GH_ID,GH_Name,GH_TYPE,GH_LOGO,GH_SUMMARY,GH_NO

SQL语句总是异常,太杯具了

Insert into T_BD_GROUPHEADER
  (GH_ID,
   GH_Name,
   GH_TYPE,
   GH_LOGO,
   GH_SUMMARY,
   GH_NOTICE_RTF,
   GH_OP_ID_CREATOR,
   GH_CREATOR_NAME)
Values
  (SEQ_QQGROUP_ID.Nextval,
   '江正(1001286) 创建的讨论组',
   '2',
   NULL,
   '江正(1001286) 创建于 21月-01日',
   NULL,
   '828',
   '江正');

DECLARE
  V_SEQID NUMBER;
BEGIN
  SELECT SEQ_QQGROUP_ID.CURRVAL INTO V_SEQID FROM dual;
END;

INSERT INTO T_BD_GROUPLINE
  (OP_ID, GH_ID, GL_OP_ALIAS)
  Select '828', V_SEQID, '江正(1001286)'
    FROM DUAL
  UNION
  Select '1474', SEQ_QQGROUP_ID.CURRVAL, '陈维(1002392)'
    FROM DUAL
  UNION
  Select '466', SEQ_QQGROUP_ID.CURRVAL, '冯敏(1000609)'
    FROM DUAL
  UNION
  Select '1000', SEQ_QQGROUP_ID.CURRVAL, '郭珊珊(1001705)'
    FROM DUAL
  UNION
  Select '103', SEQ_QQGROUP_ID.CURRVAL, '齐湘波(1000119)'
    FROM DUAL
  UNION
  Select '13', SEQ_QQGROUP_ID.CURRVAL, '张莉(1000013)' FROM DUAL
问题在哪? SQL select 异常
[解决办法]
路过  刚开始学   
[解决办法]
DECLARE
  V_SEQID NUMBER;
BEGIN
  SELECT SEQ_QQGROUP_ID.CURRVAL INTO V_SEQID FROM dual;

INSERT INTO T_BD_GROUPLINE
  (OP_ID, GH_ID, GL_OP_ALIAS)
  Select '828', V_SEQID, '江正(1001286)'
    FROM DUAL
  UNION
  Select '1474', V_SEQID, '陈维(1002392)'


    FROM DUAL
  UNION
  Select '466', V_SEQID, '冯敏(1000609)'
    FROM DUAL
  UNION
  Select '1000', V_SEQID, '郭珊珊(1001705)'
    FROM DUAL
  UNION
  Select '103', V_SEQID, '齐湘波(1000119)'
    FROM DUAL
  UNION
  Select '13', V_SEQID, '张莉(1000013)' FROM DUAL;
 END;

 
[解决办法]
declare
begin
end;

这是一个匿名块,块结束后,declare之后的变量也释放了,你想用变量,在sqlplus里用var指令
[解决办法]

DECLARE
  V_SEQID NUMBER;
BEGIN
  Insert into T_BD_GROUPHEADER
  (GH_ID,
   GH_Name,
   GH_TYPE,
   GH_LOGO,
   GH_SUMMARY,
   GH_NOTICE_RTF,
   GH_OP_ID_CREATOR,
   GH_CREATOR_NAME);
Values
  (SEQ_QQGROUP_ID.Nextval,
   '江正(1001286) 创建的讨论组',
   '2',
   NULL,
   '江正(1001286) 创建于 21月-01日',
   NULL,
   '828',
   '江正');
  SELECT SEQ_QQGROUP_ID.CURRVAL INTO V_SEQID FROM dual;
  INSERT INTO T_BD_GROUPLINE
  (OP_ID, GH_ID, GL_OP_ALIAS)
  Select '828', V_SEQID, '江正(1001286)'
    FROM DUAL
  UNION
  Select '1474', V_SEQID, '陈维(1002392)'
    FROM DUAL
  UNION
  Select '466', V_SEQID, '冯敏(1000609)'
    FROM DUAL
  UNION
  Select '1000', V_SEQID, '郭珊珊(1001705)'
    FROM DUAL
  UNION
  Select '103', V_SEQID, '齐湘波(1000119)'
    FROM DUAL
  UNION
  Select '13', V_SEQID, '张莉(1000013)' FROM DUAL;
commit;
end;

建议你看看plsql的语法。
[解决办法]

/* Formatted on 2013/08/02 14:39 (Formatter Plus v4.8.7) */
DECLARE
   v_seqid   NUMBER;
BEGIN
   SELECT seq_qqgroup_id.NEXTVAL


     INTO v_seqid
     FROM DUAL;

   INSERT INTO t_bd_groupheader
               (gh_id, gh_name, gh_type, gh_logo,
                gh_summary, gh_notice_rtf, gh_op_id_creator, gh_creator_name
               )
        VALUES (v_seqid, '江正(1001286) 创建的讨论组', '2', NULL,
                '江正(1001286) 创建于 21月-01日', NULL, '828', '江正'
               );

   INSERT INTO t_bd_groupline
               (op_id, gh_id, gl_op_alias)
      SELECT '828', v_seqid, '江正(1001286)'
        FROM DUAL
      UNION
      SELECT '1474', v_seqid, '陈维(1002392)'
        FROM DUAL
      UNION
      SELECT '466', v_seqid, '冯敏(1000609)'
        FROM DUAL
      UNION
      SELECT '1000', v_seqid, '郭珊珊(1001705)'
        FROM DUAL
      UNION
      SELECT '103', v_seqid, '齐湘波(1000119)'
        FROM DUAL
      UNION
      SELECT '13', v_seqid, '张莉(1000013)'
        FROM DUAL;

   COMMIT;
END;



写成这样就可以了,我检查了,你写得有错误:
1. INSERT INTO t_bd_groupheader() ..这里多了个分号.
2. 另外帮你调整了一下逻辑。
[解决办法]
把表结构和序列语句发出看看
[解决办法]
 t_bd_groupline 表结构中,是不是有数值型INSERT 是字符型!

[解决办法]
引用:

Quote: 引用:

把表结构和序列语句发出看看
各位找出原因了,有个字段有数据类型不匹配。
结帖散分SQL语句总是错误,太杯具了

热点排行