标签: sqlanywhere

SQL Anywhere表长度

如何在SQL Anywhere上查看表的长度(以字节为单位)?这是可能的?

谢谢

sqlanywhere

4
推荐指数
1
解决办法
733
查看次数

java.lang.ClassCastException:org.apache.tomcat.dbcp.dbcp.BasicDataSource无法强制转换为org.apache.tomcat.jdbc.pool.DataSource

我正在运行Tomcat 7.0.22,我编写了一个连接到SQL Anywhere 12.0数据库的简单servlet.当我运行servlet时,我得到了java.lang.ClassCastException:org.apache.tomcat.dbcp.dbcp.BasicDataSource无法强制转换为org.apache.tomcat.jdbc.pool.DataSource.我的./META-INF/content.xml文件如下所示:

<Context>
  <Resource name="jdbc/FUDB"
           auth="Container"
           type="javax.sql.DataSource"
           username="dba"
           password="sql"
           driverClassName="sybase.jdbc.sqlanywhere.IDriver"
           factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
Run Code Online (Sandbox Code Playgroud)

URL = "JDBC:SQLAnywhere中:UID = DBA; PWD = SQL; ENG = BTH476331A_FedUtilization;" accessToUnderlyingConnectionAllowed ="true"maxActive ="8"maxIdle ="4"/>

我的webapp web.xml如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
    <display-name>FedUtilization</display-name>  
    <servlet>
  <servlet-name>Report1</servlet-name>
      <display-name>Report1</display-name>
      <servlet-class>com.sapgss.ps.servlet.Report1</servlet-class> 
Run Code Online (Sandbox Code Playgroud)

Report1/Report1
SQL Anywhere 12.0.1服务器jdbc3 jdbc/FUDB javax.sql.DataSource容器

servlet代码如下:

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import org.apache.catalina.core.StandardContext.*;
import org.apache.tomcat.jdbc.pool.*;
import com.sapgss.ps.dbutil.*;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;

public class Report1 extends HttpServlet {

    public void doGet(HttpServletRequest request, …
Run Code Online (Sandbox Code Playgroud)

sqlanywhere tomcat7

4
推荐指数
1
解决办法
2万
查看次数

致命错误:在ini_set之后允许的内存大小为134217728字节(尝试分配3个字节)

起初,我已经看过这个,这个这个.

我收到以下错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 220 bytes)

我正php 5.4和我一起工作sql Anywhere 11.

对此的解决方案是根据是放入ini_set('memory_set',-1);我的php-file,但在这之后我得到另一个错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes)

编辑:我的代码是

<?php
    ini_set('memory_set',-1);
    $connect = sasql_connect("UID=username;PWD=pass");
    echo "Connection succeed";

    $result = sasql_query($connect, "SELECT * FROM table1, table2");

    if(!$result){
    echo "sasql_query failed";
    return 0;
    } else {
    echo "query …
Run Code Online (Sandbox Code Playgroud)

php memory ini sqlanywhere

4
推荐指数
1
解决办法
3万
查看次数

准备好的sql语句中的int的Python列表

我的问题与SQL到SQL IN参数的String的Python列表有些相同,但是我有一个整数列表。我使用的python代码是:

ids = [1000032, 1000048]
sql = 'SELECT CompNo, CompName, CompType FROM Component WHERE DeptID IN (?)'    
cursor.execute(sql, [','.join(ids)])
Run Code Online (Sandbox Code Playgroud)

Sybase数据库引擎的响应为:

pyodbc.Error: ('07006', "[07006] [Sybase][ODBC Driver][SQL Anywhere]Cannot convert '1000032','1000048' to a numeric (-157) (SQLExecDirectW)")
Run Code Online (Sandbox Code Playgroud)

正确的方法是什么?

python sql sqlanywhere pyodbc

4
推荐指数
2
解决办法
1015
查看次数

如何检查SQL Anywhere中是否存在临时表?

我想编写一个SQL IF语句来检查是否存在本地临时表,但这些表不会记录在SQL Anywhere系统目录中.

sql sqlanywhere

3
推荐指数
1
解决办法
3830
查看次数

如何在rails上的ruby中调用存储过程?

我是ROR的新手.我想在单击VIEW中的提交按钮时调用存储过程进行处理.

    Model:
    -------

    class Pro::DataImport < ActiveRecord::Base
      attr_accessible :file_name, :process_name, :updated_by, :validates

    end

    Controller:
    -----------------

    class Pro::DataImportsController < ApplicationController
       before_filter :authenticate_user!
      layout "layouts/enr/energy_master"

      def index
       @pro_data_imports = Pro::DataImport.all 
      end

      def new
        @pro_data_import = Pro::DataImport.new
      end

    end

    View
    ----------

     <%= form_for @pro_data_import do %>

  <div class="field">
    Browse the file to upload:<br />
    <%= file_field_tag ':file_name' %>
  </div>

  <div class="actions">
    <%= submit_tag 'Import File' %>
  </div>
<% end %>


    Stored Proc
    ---------------

    ALTER PROCEDURE "DBA"."my_enr_test"(file_name long varchar)
    BEGIN
        INSERT INTO DBA.pro_data_imports(file_name) values(file_name); …
Run Code Online (Sandbox Code Playgroud)

stored-procedures ruby-on-rails sqlanywhere

3
推荐指数
1
解决办法
9891
查看次数

SQL Anywhere自动增量重置

我有一个SQL Anywhere 9数据库,我想将我的一个列上的自动增量值重置为特定数字.

我想我需要SQL-Anywhere相当于:

ALTER TABLE foo AUTO_INCREMENT =100

sqlanywhere auto-increment

2
推荐指数
1
解决办法
4386
查看次数

使用Sybase SQL Anywhere分割/分解逗号分隔的字符串

更新: 有人将此问题标记为“我如何分割字符串,以便可以访问项目x”的重复 。但这是不同的,我的问题是关于Sybase SQL Anywhere,另一个是关于MS SQL Server。这是两个不同的SQL引擎,即使它们具有相同的来源,也具有不同的语法。因此它不是重复的。我首先在描述和标签中写到了关于Sybase SQL Anywhere的全部内容。

我有田野 id_list='1234,23,56,576,1231,567,122,87876,57553,1216'

我想用它来搜索IN该字段:

SELECT * 
FROM table1
WHERE id IN (id_list)
Run Code Online (Sandbox Code Playgroud)
  • idinteger

  • id_listvarchar/text

但是以这种方式行不通,因此我需要以某种方式拆分id_list为选择查询。

我应该在这里使用什么解决方案?我正在使用T-SQL Sybase ASA 9数据库(SQL Anywhere)。

我看到的方式是,通过while循环创建自己的函数,并基于分隔符位置搜索拆分每个元素,然后将元素插入到临时表中,该函数将作为结果返回。

sql t-sql sybase split sqlanywhere

2
推荐指数
1
解决办法
5万
查看次数

如果没有唯一键,如何删除sybase中的重复行?

是的,你可以多次找到类似的问题,但是:这里发布的最优雅的解决方案适用于SQL Server,但不适用于Sybase(在我的案例中是Sybase Anywhere 11).我甚至发现一些与Sybase相关的问题被标记为SQL Server问题的重复,这没有帮助.

我喜欢但不起作用的解决方案的一个例子是WITH ... DELETE ...构造.

我找到了使用游标或while循环的工作解决方案,但我希望没有循环可能.

我希望有一个漂亮,简单和快速的查询,只删除除了一个完全重复的所有内容.

这里有一个小测试框架:

IF OBJECT_ID( 'tempdb..#TestTable' ) IS NOT NULL
  DROP TABLE #TestTable;

CREATE TABLE #TestTable (Column1 varchar(1), Column2 int);

INSERT INTO #TestTable VALUES ('A', 1);
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 2);
INSERT INTO #TestTable VALUES ('B', 1);
INSERT INTO #TestTable VALUES ('B', 2);
INSERT INTO #TestTable VALUES ('B', 2); -- duplicate
INSERT …
Run Code Online (Sandbox Code Playgroud)

sql sybase sqlanywhere duplicate-removal

2
推荐指数
1
解决办法
2万
查看次数

Sybase"具有多个SET的主机变量值不够"

当执行具有多个用于SET局部变量的参数的查询时,我收到此错误:

iAnywhere.Data.SQLAnywhere.SAException(0x80004005):主机变量的值不足

我使用OdbcConnection或SAConnection得到相同的错误.

var connection = new SAConnection(connectionString);
connection.Open();
var transaction = connection.BeginTransaction();

string sql = @"
DECLARE @A int
DECLARE @B int
SET @A = ?
SET @B = ?
";

var command = new SACommand(sql, connection, transaction);

var param1 = new SAParameter();
param1.Value = 1;
command.Parameters.Add(param1);

var param2 = new SAParameter();
param2.Value = 2;
command.Parameters.Add(param2);

command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

如果只有一个参数,查询执行正常:

DECLARE @A int
DECLARE @B int
SET @A = ?
SET @B = 42
Run Code Online (Sandbox Code Playgroud)

我在Sybase Anywhere 12.0.1.3942服务器上运行它.

更新:经过更多测试后,我注意到当我在同一个查询中有多个参数化语句时会发生这种情况.这也给出了错误:

SELECT ? …
Run Code Online (Sandbox Code Playgroud)

c# sybase odbc sqlanywhere

2
推荐指数
1
解决办法
981
查看次数