CSV to array

Jun 07, 2016 pm 02:54 PM
array csv sql 字符串 截断 数组

将CSV的字符串 截断成相应的 字符串值数组 PL/SQL jQuery CSV function csv_to_array (p_csv_line in varchar2, p_separator in varchar2 := g_default_separator) return t_str_arrayas type t_str_array as table of varchar2(4000); l_returnvalue t_str_a

将CSV的字符串
截断成相应的 字符串值数组 PL/SQL jQuery CSV
function csv_to_array (p_csv_line in varchar2,
                       p_separator in varchar2 := g_default_separator) return t_str_array
as
  type t_str_array as table of varchar2(4000);
  l_returnvalue      t_str_array     := t_str_array();--返回的字符串数组类型
  l_start_separator  pls_integer     := 0 ;
  l_stop_separator   pls_integer     := 0 ;
  l_length           pls_integer     := 0 ;--长度
  l_idx              binary_integer  := 0 ;
  l_quote_enclosed   boolean         := false ;
  l_offset           pls_integer     := 1 ;
begin

  /*

  Purpose:      convert CSV line to array of values

  Remarks:      based on code from http://www.experts-exchange.com/Database/Oracle/PL_SQL/Q_23106446.html

  Who     Date        Description
  ------  ----------  --------------------------------
  MBR     31.03.2010  Created
  fartpig 07.03.2011  noted

  */
  /*
  相应的CSV中的注意 就是关于 "" 中包含分隔符 ,的情况,需要通过标记 是否有双引号的 变量来进行扫描查找 
  同时保存三个扫描量:扫描开始位置(扫描头),扫描结束位置(扫描尾),扫描偏移量(用来标记扫描的偏移)
  */
  --获得长度
  l_length := length(p_csv_line) ;

  if l_length > 0 then
    loop
      --递增 标记的数据下标
      l_idx := l_idx + 1;

      l_quote_enclosed := false;
      --判断开始分割的 下一个字符是否是 "
      if substr(p_csv_line, l_start_separator + 1, 1) = '"' then
        --如果是 标记其 有双引号
        l_quote_enclosed := true;
        --设定 扫描偏移单位为 2
        l_offset := 2;
        --查找 下一个双引号的位置
        l_stop_separator := instr(p_csv_line, '"', l_start_separator + l_offset, 1);
      else
        --如果没有 双引号 
        --设定 扫描偏移单位为 1
        l_offset := 1;
        --查找 下一个 分割符 的位置
        l_stop_separator := instr(p_csv_line, p_separator, l_start_separator + l_offset, 1);
      end if;
      --如果 没有找到 扫描的下一个 位置
      if l_stop_separator = 0 then
        --设定 扫描的下一个位置为  总长度+1 从而推出循环
        l_stop_separator := l_length + 1;
      end if;
      --将 扫描得到的 值 保存到数组中
      l_returnvalue.extend;      
      l_returnvalue(l_idx) := substr(p_csv_line, l_start_separator + l_offset, (l_stop_separator - l_start_separator - l_offset));
      --如果扫描到头 就推出循环
      exit when l_stop_separator >= l_length;
      --如果有 双引号
      if l_quote_enclosed then
        --将扫描位置 +1 从而过滤掉"
        l_stop_separator := l_stop_separator + 1;
      end if ;
      --标记 扫描的开始位置 为 扫描到的位置
      l_start_separator := l_stop_separator;
    end loop;

  end if;
  -- 返回结果
  return l_returnvalue;

end csv_to_array;
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'art de PHP Array Deep Copy : utiliser différentes méthodes pour obtenir une copie parfaite L'art de PHP Array Deep Copy : utiliser différentes méthodes pour obtenir une copie parfaite May 01, 2024 pm 12:30 PM

Les méthodes de copie approfondie de tableaux en PHP incluent : l'encodage et le décodage JSON à l'aide de json_decode et json_encode. Utilisez array_map et clone pour créer des copies complètes des clés et des valeurs. Utilisez Serialize et Unsérialize pour la sérialisation et la désérialisation.

Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes May 03, 2024 pm 09:03 PM

La comparaison des performances des méthodes de retournement des valeurs de clé de tableau PHP montre que la fonction array_flip() fonctionne mieux que la boucle for dans les grands tableaux (plus d'un million d'éléments) et prend moins de temps. La méthode de la boucle for consistant à retourner manuellement les valeurs clés prend un temps relativement long.

Meilleures pratiques pour la copie approfondie des tableaux PHP : découvrez des méthodes efficaces Meilleures pratiques pour la copie approfondie des tableaux PHP : découvrez des méthodes efficaces Apr 30, 2024 pm 03:42 PM

La meilleure pratique pour effectuer une copie complète d'un tableau en PHP consiste à utiliser json_decode(json_encode($arr)) pour convertir le tableau en chaîne JSON, puis à le reconvertir en tableau. Utilisez unserialize(serialize($arr)) pour sérialiser le tableau en chaîne, puis désérialisez-le en un nouveau tableau. Utilisez RecursiveIteratorIterator pour parcourir de manière récursive des tableaux multidimensionnels.

Application de la fonction de regroupement de tableaux PHP dans le tri des données Application de la fonction de regroupement de tableaux PHP dans le tri des données May 04, 2024 pm 01:03 PM

La fonction array_group_by de PHP peut regrouper des éléments dans un tableau en fonction de clés ou de fonctions de fermeture, renvoyant un tableau associatif où la clé est le nom du groupe et la valeur est un tableau d'éléments appartenant au groupe.

Pratique du tri multidimensionnel des tableaux PHP : des scénarios simples aux scénarios complexes Pratique du tri multidimensionnel des tableaux PHP : des scénarios simples aux scénarios complexes Apr 29, 2024 pm 09:12 PM

Le tri des tableaux multidimensionnels peut être divisé en tri sur une seule colonne et en tri imbriqué. Le tri sur une seule colonne peut utiliser la fonction array_multisort() pour trier par colonnes ; le tri imbriqué nécessite une fonction récursive pour parcourir le tableau et le trier. Les cas pratiques incluent le tri par nom de produit et le tri composé par volume de ventes et prix.

Le rôle de la fonction de regroupement de tableaux PHP dans la recherche d'éléments en double Le rôle de la fonction de regroupement de tableaux PHP dans la recherche d'éléments en double May 05, 2024 am 09:21 AM

La fonction array_group() de PHP peut être utilisée pour regrouper un tableau par une clé spécifiée afin de rechercher les éléments en double. Cette fonction fonctionne selon les étapes suivantes : Utilisez key_callback pour spécifier la clé de regroupement. Utilisez éventuellement value_callback pour déterminer les valeurs de regroupement. Comptez les éléments regroupés et identifiez les doublons. Par conséquent, la fonction array_group() est très utile pour rechercher et traiter des éléments en double.

Comment utiliser les fonctions PHP pour traiter les données CSV ? Comment utiliser les fonctions PHP pour traiter les données CSV ? May 03, 2024 pm 10:18 PM

PHP fournit des fonctions pratiques pour lire, écrire, analyser et épisser des fichiers CSV, et fournit des fonctions de générateur pour le traitement de fichiers CSV volumineux. Cet article montre comment utiliser ces fonctions pour lire les données utilisateur à partir d'un fichier CSV et les importer dans une base de données.

Les tableaux peuvent-ils être utilisés comme paramètres de fonction ? Les tableaux peuvent-ils être utilisés comme paramètres de fonction ? Jun 04, 2024 pm 04:30 PM

Oui, dans de nombreux langages de programmation, les tableaux peuvent être utilisés comme paramètres de fonction, et la fonction effectuera des opérations sur les données qui y sont stockées. Par exemple, la fonction printArray en C++ peut imprimer les éléments d'un tableau, tandis que la fonction printArray en Python peut parcourir le tableau et imprimer ses éléments. Les modifications apportées au tableau par ces fonctions sont également reflétées dans le tableau d'origine dans la fonction appelante.

See all articles